diff options
author | Chao Zhang <chaoz@codeaurora.org> | 2016-01-27 15:07:11 +0800 |
---|---|---|
committer | Chao Zhang <chaoz@codeaurora.org> | 2016-01-27 15:19:44 +0800 |
commit | 0e30577a2062afc30f702b790ebd658961837b76 (patch) | |
tree | 9a746b62594d0a12fc363422134c85cc22a62142 /src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java | |
parent | 49c47e4973650cdabf096c8ecb5ea483a5407c19 (diff) | |
download | android_packages_apps_Gallery2-0e30577a2062afc30f702b790ebd658961837b76.tar.gz android_packages_apps_Gallery2-0e30577a2062afc30f702b790ebd658961837b76.tar.bz2 android_packages_apps_Gallery2-0e30577a2062afc30f702b790ebd658961837b76.zip |
Gallery2: fix video can play while telephony call is in progress.
Doesn't allow play/resume video, while telephony call is in progress.
And pause video if request audio focus failed.
Change-Id: I9b29fef45f5038ffe7573e5f5eea2a12a56c43ae
CRs-Fixed: 945033
Diffstat (limited to 'src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java')
-rw-r--r-- | src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java b/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java index e3f441e95..c6956e68c 100644 --- a/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java +++ b/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java @@ -98,7 +98,11 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr private boolean mIsShowDialog = false; private boolean mErrorDialogShowing = false; private KeyguardManager mKeyguardManager; - private AudioManager.OnAudioFocusChangeListener mAudioFocusListener; + private AudioFocusChangeListener mAudioFocusListener; + + public interface AudioFocusChangeListener extends AudioManager.OnAudioFocusChangeListener { + public void onAudioFocusRequestFailed(); + } private final Handler mHandler = new Handler() { public void handleMessage(final Message msg) { @@ -622,7 +626,7 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr mOnInfoListener = l; } - public void setOnAudioFocusChangeListener(AudioManager.OnAudioFocusChangeListener l) { + public void setOnAudioFocusChangeListener(AudioFocusChangeListener l) { mAudioFocusListener = l; } @@ -778,8 +782,18 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr public void start() { if (mIsShowDialog) return; if (isInPlaybackState()) { - mMediaPlayer.start(); - mCurrentState = STATE_PLAYING; + AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); + int result = am.requestAudioFocus(mAudioFocusListener, AudioManager.STREAM_MUSIC, + AudioManager.AUDIOFOCUS_GAIN); + if (result != AudioManager.AUDIOFOCUS_REQUEST_FAILED) { + mMediaPlayer.start(); + mCurrentState = STATE_PLAYING; + } else { + Log.w(TAG, "requestAudioFocus failed."); + if (mAudioFocusListener != null) { + mAudioFocusListener.onAudioFocusRequestFailed(); + } + } } mTargetState = STATE_PLAYING; } |