diff options
author | wjia@chromium.org <wjia@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-15 23:16:56 +0000 |
---|---|---|
committer | wjia@chromium.org <wjia@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-15 23:16:56 +0000 |
commit | 0eafc096894e1f219a8f71572bf0e5b85fabf17b (patch) | |
tree | 4eab46e5ee2e48f36b76d61880ec57a38a9a71ca /media/base | |
parent | 0afe3240f4b340de8d888774c90956c2384b3f06 (diff) | |
download | chromium_src-0eafc096894e1f219a8f71572bf0e5b85fabf17b.zip chromium_src-0eafc096894e1f219a8f71572bf0e5b85fabf17b.tar.gz chromium_src-0eafc096894e1f219a8f71572bf0e5b85fabf17b.tar.bz2 |
Fix audio routing on Android.
We are listening to the intent ACTION_HEADSET_PLUG to decide whether to turn on speakerphone or not.
As long as a wired headset has been plugged before, the listener will receive an ACTION_HEADSET_PLUG
intent regardless of a headset being plugged or not. The current code can handle this case correctly.
However, if no wired headset has been ever plugged after boot up, the device will not broadcast an
ACTION_HEADSET_PLUG intent after the listener is registered. This will result in audio
being routed to earpiece, instead of speakerphone.
To achieve consistent behavior, it's needed to turn on speakerphone when the listener is registered.
In case a wired headset is plugged, the listener will receive an intent which results in speakerphone
turned off.
BUG=319010
R=henrika@chromium.org, qinmin@chromium.org
Review URL: https://codereview.chromium.org/59973011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@235466 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base')
-rw-r--r-- | media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java b/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java index 3bb7f9e..0f0cfb6 100644 --- a/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java +++ b/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java @@ -64,6 +64,9 @@ class AudioManagerAndroid { } mOriginalSpeakerStatus = mAudioManager.isSpeakerphoneOn(); + if (!mOriginalSpeakerStatus) { + mAudioManager.setSpeakerphoneOn(true); + } IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG); mReceiver = new BroadcastReceiver() { |