diff options
| author | zdi <zdi@codeaurora.org> | 2016-01-22 10:07:41 +0800 |
|---|---|---|
| committer | zdi <zdi@codeaurora.org> | 2016-01-22 10:29:35 +0800 |
| commit | 841ab2759479402e9086c1b627d80dd3191e4c89 (patch) | |
| tree | 4d5693ba97c76f44bded2a2d3004f4d6d21c7b19 /src/org | |
| parent | f4c20173d8622563f5bd80ef4d15525286cf601e (diff) | |
| download | android_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.java | 12 |
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); } } |
