diff options
| author | Marco Nelissen <marcone@google.com> | 2013-05-09 15:36:53 -0700 |
|---|---|---|
| committer | Marco Nelissen <marcone@google.com> | 2013-05-09 15:50:38 -0700 |
| commit | 13bfebd6b70ebfd8ad0d1aa24a92178ebff3565b (patch) | |
| tree | 9061eed1a5f701252c53fac95190906a289f66e7 /core/java/android/widget/VideoView.java | |
| parent | 2c76016cbc1e426ab30d322745dfb6d4e6784138 (diff) | |
Add VideoView.getAudioSessionId()
This lets apps get the audio session id of the video being played, so
they can apply effects to the audio track.
b/8767565
Change-Id: Iaa39d97d0b6fb528ed04b52d579afa58444ebcfe
Diffstat (limited to 'core/java/android/widget/VideoView.java')
| -rw-r--r-- | core/java/android/widget/VideoView.java | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/core/java/android/widget/VideoView.java b/core/java/android/widget/VideoView.java index 16b6a76b720f..ebf9fe050d2d 100644 --- a/core/java/android/widget/VideoView.java +++ b/core/java/android/widget/VideoView.java @@ -35,7 +35,6 @@ import android.view.MotionEvent; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; -import android.view.View.MeasureSpec; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.MediaController.MediaPlayerControl; @@ -76,6 +75,7 @@ public class VideoView extends SurfaceView implements MediaPlayerControl { // All the stuff we need for playing and showing a video private SurfaceHolder mSurfaceHolder = null; private MediaPlayer mMediaPlayer = null; + private int mAudioSession; private int mVideoWidth; private int mVideoHeight; private int mSurfaceWidth; @@ -244,6 +244,11 @@ public class VideoView extends SurfaceView implements MediaPlayerControl { release(false); try { mMediaPlayer = new MediaPlayer(); + if (mAudioSession != 0) { + mMediaPlayer.setAudioSessionId(mAudioSession); + } else { + mAudioSession = mMediaPlayer.getAudioSessionId(); + } mMediaPlayer.setOnPreparedListener(mPreparedListener); mMediaPlayer.setOnVideoSizeChangedListener(mSizeChangedListener); mMediaPlayer.setOnCompletionListener(mCompletionListener); @@ -598,6 +603,7 @@ public class VideoView extends SurfaceView implements MediaPlayerControl { } } + @Override public void start() { if (isInPlaybackState()) { mMediaPlayer.start(); @@ -606,6 +612,7 @@ public class VideoView extends SurfaceView implements MediaPlayerControl { mTargetState = STATE_PLAYING; } + @Override public void pause() { if (isInPlaybackState()) { if (mMediaPlayer.isPlaying()) { @@ -624,6 +631,7 @@ public class VideoView extends SurfaceView implements MediaPlayerControl { openVideo(); } + @Override public int getDuration() { if (isInPlaybackState()) { return mMediaPlayer.getDuration(); @@ -632,6 +640,7 @@ public class VideoView extends SurfaceView implements MediaPlayerControl { return -1; } + @Override public int getCurrentPosition() { if (isInPlaybackState()) { return mMediaPlayer.getCurrentPosition(); @@ -639,6 +648,7 @@ public class VideoView extends SurfaceView implements MediaPlayerControl { return 0; } + @Override public void seekTo(int msec) { if (isInPlaybackState()) { mMediaPlayer.seekTo(msec); @@ -648,10 +658,12 @@ public class VideoView extends SurfaceView implements MediaPlayerControl { } } + @Override public boolean isPlaying() { return isInPlaybackState() && mMediaPlayer.isPlaying(); } + @Override public int getBufferPercentage() { if (mMediaPlayer != null) { return mCurrentBufferPercentage; @@ -666,15 +678,28 @@ public class VideoView extends SurfaceView implements MediaPlayerControl { mCurrentState != STATE_PREPARING); } + @Override public boolean canPause() { return mCanPause; } + @Override public boolean canSeekBackward() { return mCanSeekBack; } + @Override public boolean canSeekForward() { return mCanSeekForward; } + + @Override + public int getAudioSessionId() { + if (mAudioSession == 0) { + MediaPlayer foo = new MediaPlayer(); + mAudioSession = foo.getAudioSessionId(); + foo.release(); + } + return mAudioSession; + } } |
