| Index: webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java
|
| diff --git a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java
|
| index c2874316a5ddac0e6a0c03a78f810a918f420a38..825f627d038742d8c5ef6ec72a2bdd62e09fa7f2 100644
|
| --- a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java
|
| +++ b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java
|
| @@ -188,6 +188,17 @@ public class WebRtcAudioTrack {
|
| Logging.e(TAG, "AudioTrack.getMinBufferSize returns an invalid value.");
|
| return false;
|
| }
|
| + // The default (preferred) stream type is STREAM_VOICE_CALL since the
|
| + // WebRTC stack is mainly intended for VoIP calls.
|
| + int streamType = AudioManager.STREAM_VOICE_CALL;
|
| + if (audioManager.getMode() != AudioManager.MODE_IN_COMMUNICATION) {
|
| + // But if the user wants to run in another mode than COMM mode, we
|
| + // accept it and change the stream type to STREAM_MUSIC instead. It can
|
| + // e.g. be suitable for applications that do not record audio or if a
|
| + // call shall be casted to a Chromecast device.
|
| + streamType = AudioManager.STREAM_MUSIC;
|
| + Logging.w(TAG, "Using AudioManager.STREAM_MUSIC as stream type.");
|
| + }
|
|
|
| // Ensure that prevision audio session was stopped correctly before trying
|
| // to create a new AudioTrack.
|
| @@ -199,9 +210,8 @@ public class WebRtcAudioTrack {
|
| // Create an AudioTrack object and initialize its associated audio buffer.
|
| // The size of this buffer determines how long an AudioTrack can play
|
| // before running out of data.
|
| - audioTrack =
|
| - new AudioTrack(AudioManager.STREAM_VOICE_CALL, sampleRate, AudioFormat.CHANNEL_OUT_MONO,
|
| - AudioFormat.ENCODING_PCM_16BIT, minBufferSizeInBytes, AudioTrack.MODE_STREAM);
|
| + audioTrack = new AudioTrack(streamType, sampleRate, AudioFormat.CHANNEL_OUT_MONO,
|
| + AudioFormat.ENCODING_PCM_16BIT, minBufferSizeInBytes, AudioTrack.MODE_STREAM);
|
| } catch (IllegalArgumentException e) {
|
| Logging.d(TAG, e.getMessage());
|
| return false;
|
|
|