summaryrefslogtreecommitdiffstats
path: root/src/org
diff options
context:
space:
mode:
authorzdi <zdi@codeaurora.org>2016-01-22 10:07:41 +0800
committerzdi <zdi@codeaurora.org>2016-01-22 10:29:35 +0800
commit841ab2759479402e9086c1b627d80dd3191e4c89 (patch)
tree4d5693ba97c76f44bded2a2d3004f4d6d21c7b19 /src/org
parentf4c20173d8622563f5bd80ef4d15525286cf601e (diff)
downloadandroid_packages_apps_Gallery2-841ab2759479402e9086c1b627d80dd3191e4c89.tar.gz
android_packages_apps_Gallery2-841ab2759479402e9086c1b627d80dd3191e4c89.tar.bz2
android_packages_apps_Gallery2-841ab2759479402e9086c1b627d80dd3191e4c89.zip
Gallery2: Auto pause and replay video when audio focus changed.
Add OnAudioFocusChangeListener in CodeauroraVideoView, pause video when lose audio focus and replay video when gain audio focus. Change-Id: Id8e3e4b0afbc72892301a08fb8a122c285fbfe97 CRs-Fixed: 962677
Diffstat (limited to 'src/org')
-rw-r--r--src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java b/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java
index 0475aef82..e3f441e95 100644
--- a/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java
+++ b/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java
@@ -98,6 +98,7 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr
private boolean mIsShowDialog = false;
private boolean mErrorDialogShowing = false;
private KeyguardManager mKeyguardManager;
+ private AudioManager.OnAudioFocusChangeListener mAudioFocusListener;
private final Handler mHandler = new Handler() {
public void handleMessage(final Message msg) {
@@ -449,6 +450,8 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr
mMediaPlayer = null;
mCurrentState = STATE_IDLE;
mTargetState = STATE_IDLE;
+ AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+ am.abandonAudioFocus(null);
}
}
@@ -467,6 +470,9 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr
mErrorListener.onError(mMediaPlayer, MediaPlayer.MEDIA_ERROR_UNKNOWN, 0);
return;
}
+ AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+ am.requestAudioFocus(mAudioFocusListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
+
try {
mMediaPlayer = new MediaPlayer();
if (mAudioSession != 0) {
@@ -616,6 +622,10 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr
mOnInfoListener = l;
}
+ public void setOnAudioFocusChangeListener(AudioManager.OnAudioFocusChangeListener l) {
+ mAudioFocusListener = l;
+ }
+
SurfaceHolder.Callback mSHCallback = new SurfaceHolder.Callback() {
public void surfaceChanged(SurfaceHolder holder, int format,
int w, int h) {
@@ -681,6 +691,8 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr
if (cleartargetstate) {
mTargetState = STATE_IDLE;
}
+ AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+ am.abandonAudioFocus(null);
}
}