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" |
@@ -30,6 +31,11 @@ |
Shutdown(); |
} |
+// static |
+bool AudioManagerAndroid::RegisterAudioManager(JNIEnv* env) { |
tommi (sloooow) - chröme
2013/03/11 09:57:18
try to keep methods in the source file in the same
leozwang1
2013/03/11 15:12:24
Done.
|
+ return RegisterNativesImpl(env); |
+} |
+ |
bool AudioManagerAndroid::HasAudioOutputDevices() { |
return true; |
} |
@@ -60,12 +66,14 @@ |
AudioOutputStream* AudioManagerAndroid::MakeLinearOutputStream( |
const AudioParameters& params) { |
DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); |
+ SetAudioMode(kAudioModeNormal); |
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); |
} |
@@ -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 |