summaryrefslogtreecommitdiffstats
path: root/src/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/org')
-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;
}