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;