From 003211c5da78e51a04229b3f28da8a831224e541 Mon Sep 17 00:00:00 2001 From: Magnus Jedvert Date: Thu, 29 Mar 2018 08:42:38 +0200 Subject: [PATCH] Android: Rename AudioDeviceModule to JavaAudioDeviceModule The class called AudioDeviceModule today is an implementation of a future interface. We want to reserve the name AudioDeviceModule for the actual interface. The implementation class has been renamed to JavaAudioDeviceModule. 'Java' here refers to the fact that the implementation is using android.media.AudioRecord as input and android.media.AudioTrack as output, and this is opposed to native AudioDeviceModule implementations such as OpenSLES and AAudio. Bug: webrtc:7452 Change-Id: Ifc243c2e169b12a50128ee3252f06d574aa7b358 Reviewed-on: https://webrtc-review.googlesource.com/65400 Reviewed-by: Paulina Hensman Commit-Queue: Magnus Jedvert Cr-Commit-Position: refs/heads/master@{#22673} --- .../appspot/apprtc/PeerConnectionClient.java | 20 +++++++++---------- .../apprtc/RecordedAudioToFileController.java | 8 ++++---- .../org/appspot/apprtc/SettingsActivity.java | 10 +++++----- sdk/android/BUILD.gn | 2 +- ...Module.java => JavaAudioDeviceModule.java} | 8 ++++---- .../org/webrtc/audio/WebRtcAudioRecord.java | 8 ++++---- .../org/webrtc/audio/WebRtcAudioTrack.java | 4 ++-- 7 files changed, 30 insertions(+), 30 deletions(-) rename sdk/android/api/org/webrtc/audio/{AudioDeviceModule.java => JavaAudioDeviceModule.java} (96%) diff --git a/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java b/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java index fab9201c56..a75a247b6b 100644 --- a/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java +++ b/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java @@ -70,7 +70,7 @@ import org.webrtc.VideoRenderer; import org.webrtc.VideoSink; import org.webrtc.VideoSource; import org.webrtc.VideoTrack; -import org.webrtc.audio.AudioDeviceModule; +import org.webrtc.audio.JavaAudioDeviceModule; import org.webrtc.voiceengine.WebRtcAudioManager; import org.webrtc.voiceengine.WebRtcAudioRecord; import org.webrtc.voiceengine.WebRtcAudioRecord.AudioRecordStartErrorCode; @@ -602,24 +602,24 @@ public class PeerConnectionClient { if (peerConnectionParameters.disableBuiltInAEC) { Log.d(TAG, "Disable built-in AEC even if device supports it"); - AudioDeviceModule.setWebRtcBasedAcousticEchoCanceler(true); + JavaAudioDeviceModule.setWebRtcBasedAcousticEchoCanceler(true); } else { Log.d(TAG, "Enable built-in AEC if device supports it"); - AudioDeviceModule.setWebRtcBasedAcousticEchoCanceler(false); + JavaAudioDeviceModule.setWebRtcBasedAcousticEchoCanceler(false); } if (peerConnectionParameters.disableBuiltInNS) { Log.d(TAG, "Disable built-in NS even if device supports it"); - AudioDeviceModule.setWebRtcBasedNoiseSuppressor(true); + JavaAudioDeviceModule.setWebRtcBasedNoiseSuppressor(true); } else { Log.d(TAG, "Enable built-in NS if device supports it"); - AudioDeviceModule.setWebRtcBasedNoiseSuppressor(false); + JavaAudioDeviceModule.setWebRtcBasedNoiseSuppressor(false); } - AudioDeviceModule.setOnAudioSamplesReady(saveRecordedAudioToFile); + JavaAudioDeviceModule.setOnAudioSamplesReady(saveRecordedAudioToFile); // Set audio record error callbacks. - AudioDeviceModule.setErrorCallback(new AudioDeviceModule.AudioRecordErrorCallback() { + JavaAudioDeviceModule.setErrorCallback(new JavaAudioDeviceModule.AudioRecordErrorCallback() { @Override public void onWebRtcAudioRecordInitError(String errorMessage) { Log.e(TAG, "onWebRtcAudioRecordInitError: " + errorMessage); @@ -628,7 +628,7 @@ public class PeerConnectionClient { @Override public void onWebRtcAudioRecordStartError( - AudioDeviceModule.AudioRecordStartErrorCode errorCode, String errorMessage) { + JavaAudioDeviceModule.AudioRecordStartErrorCode errorCode, String errorMessage) { Log.e(TAG, "onWebRtcAudioRecordStartError: " + errorCode + ". " + errorMessage); reportError(errorMessage); } @@ -640,7 +640,7 @@ public class PeerConnectionClient { } }); - AudioDeviceModule.setErrorCallback(new AudioDeviceModule.AudioTrackErrorCallback() { + JavaAudioDeviceModule.setErrorCallback(new JavaAudioDeviceModule.AudioTrackErrorCallback() { @Override public void onWebRtcAudioTrackInitError(String errorMessage) { Log.e(TAG, "onWebRtcAudioTrackInitError: " + errorMessage); @@ -649,7 +649,7 @@ public class PeerConnectionClient { @Override public void onWebRtcAudioTrackStartError( - AudioDeviceModule.AudioTrackStartErrorCode errorCode, String errorMessage) { + JavaAudioDeviceModule.AudioTrackStartErrorCode errorCode, String errorMessage) { Log.e(TAG, "onWebRtcAudioTrackStartError: " + errorCode + ". " + errorMessage); reportError(errorMessage); } diff --git a/examples/androidapp/src/org/appspot/apprtc/RecordedAudioToFileController.java b/examples/androidapp/src/org/appspot/apprtc/RecordedAudioToFileController.java index d9ddce44d5..ede9819433 100644 --- a/examples/androidapp/src/org/appspot/apprtc/RecordedAudioToFileController.java +++ b/examples/androidapp/src/org/appspot/apprtc/RecordedAudioToFileController.java @@ -20,8 +20,8 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.OutputStream; import java.util.concurrent.ExecutorService; -import org.webrtc.audio.AudioDeviceModule; -import org.webrtc.audio.AudioDeviceModule.SamplesReadyCallback; +import org.webrtc.audio.JavaAudioDeviceModule; +import org.webrtc.audio.JavaAudioDeviceModule.SamplesReadyCallback; import org.webrtc.voiceengine.WebRtcAudioRecord; import org.webrtc.voiceengine.WebRtcAudioRecord.WebRtcAudioRecordSamplesReadyCallback; @@ -110,13 +110,13 @@ public class RecordedAudioToFileController // Called when new audio samples are ready. @Override public void onWebRtcAudioRecordSamplesReady(WebRtcAudioRecord.AudioSamples samples) { - onWebRtcAudioRecordSamplesReady(new AudioDeviceModule.AudioSamples(samples.getAudioFormat(), + onWebRtcAudioRecordSamplesReady(new JavaAudioDeviceModule.AudioSamples(samples.getAudioFormat(), samples.getChannelCount(), samples.getSampleRate(), samples.getData())); } // Called when new audio samples are ready. @Override - public void onWebRtcAudioRecordSamplesReady(AudioDeviceModule.AudioSamples samples) { + public void onWebRtcAudioRecordSamplesReady(JavaAudioDeviceModule.AudioSamples samples) { // The native audio layer on Android should use 16-bit PCM format. if (samples.getAudioFormat() != AudioFormat.ENCODING_PCM_16BIT) { Log.e(TAG, "Invalid audio format"); diff --git a/examples/androidapp/src/org/appspot/apprtc/SettingsActivity.java b/examples/androidapp/src/org/appspot/apprtc/SettingsActivity.java index c5871f5a5e..04e9690ff1 100644 --- a/examples/androidapp/src/org/appspot/apprtc/SettingsActivity.java +++ b/examples/androidapp/src/org/appspot/apprtc/SettingsActivity.java @@ -17,7 +17,7 @@ import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; import org.webrtc.Camera2Enumerator; -import org.webrtc.audio.AudioDeviceModule; +import org.webrtc.audio.JavaAudioDeviceModule; import org.webrtc.voiceengine.WebRtcAudioUtils; /** @@ -201,8 +201,8 @@ public class SettingsActivity extends Activity implements OnSharedPreferenceChan disableBuiltInNSPreference.setEnabled(false); } } else { - AudioDeviceModule.setWebRtcBasedAcousticEchoCanceler(false); - if (!AudioDeviceModule.isAcousticEchoCancelerSupported()) { + JavaAudioDeviceModule.setWebRtcBasedAcousticEchoCanceler(false); + if (!JavaAudioDeviceModule.isAcousticEchoCancelerSupported()) { Preference disableBuiltInAECPreference = settingsFragment.findPreference(keyprefDisableBuiltInAEC); @@ -216,8 +216,8 @@ public class SettingsActivity extends Activity implements OnSharedPreferenceChan disableBuiltInAGCPreference.setSummary(getString(R.string.pref_built_in_agc_not_available)); disableBuiltInAGCPreference.setEnabled(false); - AudioDeviceModule.setWebRtcBasedNoiseSuppressor(false); - if (!AudioDeviceModule.isNoiseSuppressorSupported()) { + JavaAudioDeviceModule.setWebRtcBasedNoiseSuppressor(false); + if (!JavaAudioDeviceModule.isNoiseSuppressorSupported()) { Preference disableBuiltInNSPreference = settingsFragment.findPreference(keyprefDisableBuiltInNS); diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn index 3061170c47..cd17b9a952 100644 --- a/sdk/android/BUILD.gn +++ b/sdk/android/BUILD.gn @@ -765,7 +765,7 @@ rtc_android_library("base_java") { "api/org/webrtc/VideoSink.java", "api/org/webrtc/YuvConverter.java", "api/org/webrtc/YuvHelper.java", - "api/org/webrtc/audio/AudioDeviceModule.java", + "api/org/webrtc/audio/JavaAudioDeviceModule.java", "src/java/org/webrtc/AndroidVideoTrackSourceObserver.java", "src/java/org/webrtc/CalledByNative.java", "src/java/org/webrtc/CalledByNativeUnchecked.java", diff --git a/sdk/android/api/org/webrtc/audio/AudioDeviceModule.java b/sdk/android/api/org/webrtc/audio/JavaAudioDeviceModule.java similarity index 96% rename from sdk/android/api/org/webrtc/audio/AudioDeviceModule.java rename to sdk/android/api/org/webrtc/audio/JavaAudioDeviceModule.java index a9c75b8406..5c30661eff 100644 --- a/sdk/android/api/org/webrtc/audio/AudioDeviceModule.java +++ b/sdk/android/api/org/webrtc/audio/JavaAudioDeviceModule.java @@ -16,13 +16,12 @@ import org.webrtc.audio.WebRtcAudioTrack; import org.webrtc.audio.WebRtcAudioUtils; /** - * Public API for Java audio methods. + * AudioDeviceModule implemented using android.media.AudioRecord as input and + * android.media.AudioTrack as output. * *

Note: This class is still under development and may change without notice. */ -public class AudioDeviceModule { - public AudioDeviceModule() {} - +public class JavaAudioDeviceModule { /* AudioManager */ public static void setStereoInput(boolean enable) { WebRtcAudioManager.setStereoInput(enable); @@ -97,6 +96,7 @@ public class AudioDeviceModule { AUDIO_TRACK_START_EXCEPTION, AUDIO_TRACK_START_STATE_MISMATCH, } + public static interface AudioTrackErrorCallback { void onWebRtcAudioTrackInitError(String errorMessage); void onWebRtcAudioTrackStartError(AudioTrackStartErrorCode errorCode, String errorMessage); diff --git a/sdk/android/src/java/org/webrtc/audio/WebRtcAudioRecord.java b/sdk/android/src/java/org/webrtc/audio/WebRtcAudioRecord.java index d07330cf83..c163e4fe71 100644 --- a/sdk/android/src/java/org/webrtc/audio/WebRtcAudioRecord.java +++ b/sdk/android/src/java/org/webrtc/audio/WebRtcAudioRecord.java @@ -24,9 +24,9 @@ import org.webrtc.CalledByNative; import org.webrtc.Logging; import org.webrtc.NativeClassQualifiedName; import org.webrtc.ThreadUtils; -import org.webrtc.audio.AudioDeviceModule.AudioRecordErrorCallback; -import org.webrtc.audio.AudioDeviceModule.AudioRecordStartErrorCode; -import org.webrtc.audio.AudioDeviceModule.SamplesReadyCallback; +import org.webrtc.audio.JavaAudioDeviceModule.AudioRecordErrorCallback; +import org.webrtc.audio.JavaAudioDeviceModule.AudioRecordStartErrorCode; +import org.webrtc.audio.JavaAudioDeviceModule.SamplesReadyCallback; class WebRtcAudioRecord { private static final boolean DEBUG = false; @@ -118,7 +118,7 @@ class WebRtcAudioRecord { // at index 0. byte[] data = Arrays.copyOf(byteBuffer.array(), byteBuffer.capacity()); audioSamplesReadyCallback.onWebRtcAudioRecordSamplesReady( - new AudioDeviceModule.AudioSamples(audioRecord.getAudioFormat(), + new JavaAudioDeviceModule.AudioSamples(audioRecord.getAudioFormat(), audioRecord.getChannelCount(), audioRecord.getSampleRate(), data)); } } else { diff --git a/sdk/android/src/java/org/webrtc/audio/WebRtcAudioTrack.java b/sdk/android/src/java/org/webrtc/audio/WebRtcAudioTrack.java index 5a72300c5c..99ca45727c 100644 --- a/sdk/android/src/java/org/webrtc/audio/WebRtcAudioTrack.java +++ b/sdk/android/src/java/org/webrtc/audio/WebRtcAudioTrack.java @@ -24,8 +24,8 @@ import javax.annotation.Nullable; import org.webrtc.ContextUtils; import org.webrtc.Logging; import org.webrtc.ThreadUtils; -import org.webrtc.audio.AudioDeviceModule.AudioTrackErrorCallback; -import org.webrtc.audio.AudioDeviceModule.AudioTrackStartErrorCode; +import org.webrtc.audio.JavaAudioDeviceModule.AudioTrackErrorCallback; +import org.webrtc.audio.JavaAudioDeviceModule.AudioTrackStartErrorCode; import org.webrtc.CalledByNative; import org.webrtc.NativeClassQualifiedName;