Index: media/audio/android/audio_manager_android.cc |
=================================================================== |
--- media/audio/android/audio_manager_android.cc (revision 187192) |
+++ media/audio/android/audio_manager_android.cc (working copy) |
@@ -5,6 +5,7 @@ |
#include "media/audio/android/audio_manager_android.h" |
#include "base/logging.h" |
+#include "jni/AudioManagerAndroid_jni.h" |
#include "media/audio/android/opensles_input.h" |
#include "media/audio/android/opensles_output.h" |
#include "media/audio/audio_manager.h" |
@@ -60,12 +61,14 @@ |
AudioOutputStream* AudioManagerAndroid::MakeLinearOutputStream( |
const AudioParameters& params) { |
DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); |
+ SetAudioMode(kAudioModeNormal); |
no longer working on chromium
2013/03/11 16:07:54
could you please explain why MakeLinearOutputStrea
|
return new OpenSLESOutputStream(this, params); |
} |
AudioOutputStream* AudioManagerAndroid::MakeLowLatencyOutputStream( |
const AudioParameters& params) { |
DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format()); |
+ SetAudioMode(kAudioModeInCommunication); |
return new OpenSLESOutputStream(this, params); |
} |
@@ -81,6 +84,11 @@ |
return new OpenSLESInputStream(this, params); |
} |
+// static |
+bool AudioManagerAndroid::RegisterAudioManager(JNIEnv* env) { |
+ return RegisterNativesImpl(env); |
+} |
+ |
AudioParameters AudioManagerAndroid::GetPreferredOutputStreamParameters( |
const AudioParameters& input_params) { |
// TODO(xians): figure out the right output sample rate and sample rate to |
@@ -116,4 +124,13 @@ |
sample_rate, bits_per_sample, buffer_size); |
} |
+void AudioManagerAndroid::SetAudioMode(int mode) { |
+ JNIEnv* env = base::android::AttachCurrentThread(); |
+ DCHECK(env); |
+ jobject context = base::android::GetApplicationContext(); |
+ DCHECK(context); |
+ |
+ Java_AudioManagerAndroid_setMode(env, context, mode); |
+} |
+ |
} // namespace media |