summaryrefslogtreecommitdiffstats
path: root/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java
diff options
context:
space:
mode:
authorChao Zhang <chaoz@codeaurora.org>2016-01-27 15:07:11 +0800
committerChao Zhang <chaoz@codeaurora.org>2016-01-27 15:19:44 +0800
commit0e30577a2062afc30f702b790ebd658961837b76 (patch)
tree9a746b62594d0a12fc363422134c85cc22a62142 /src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java
parent49c47e4973650cdabf096c8ecb5ea483a5407c19 (diff)
downloadandroid_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.java22
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;
}