Loading packages/MediaComponents/src/com/android/widget/VideoView2Impl.java +10 −31 Original line number Diff line number Diff line Loading @@ -35,7 +35,6 @@ import android.media.MediaMetadataRetriever; import android.media.MediaPlayer2; import android.media.MediaPlayer2.EventCallback; import android.media.MediaPlayer2Impl; import android.media.Metadata; import android.media.PlaybackParams; import android.media.SessionToken2; import android.media.SubtitleData; Loading Loading @@ -125,7 +124,7 @@ public class VideoView2Impl extends BaseLayout private MediaControlView2 mMediaControlView; private MediaSession mMediaSession; private MediaController mMediaController; private Metadata mMetadata; private boolean mSeekable; private MediaMetadata2 mMediaMetadata; private MediaMetadataRetriever mRetriever; private boolean mNeedUpdateMediaType; Loading Loading @@ -262,6 +261,7 @@ public class VideoView2Impl extends BaseLayout mSpeed = 1.0f; mFallbackSpeed = mSpeed; mSelectedSubtitleTrackIndex = INVALID_TRACK_INDEX; mSeekable = true; // TODO: add attributes to get this value. mShowControllerIntervalMs = DEFAULT_SHOW_CONTROLLER_INTERVAL_MS; Loading Loading @@ -795,33 +795,11 @@ public class VideoView2Impl extends BaseLayout private void updatePlaybackState() { if (mStateBuilder == null) { // Get the capabilities of the player for this stream mMetadata = mMediaPlayer.getMetadata(MediaPlayer2.METADATA_ALL, MediaPlayer2.BYPASS_METADATA_FILTER); // Add Play action as default long playbackActions = PlaybackState.ACTION_PLAY; if (mMetadata != null) { if (!mMetadata.has(Metadata.PAUSE_AVAILABLE) || mMetadata.getBoolean(Metadata.PAUSE_AVAILABLE)) { playbackActions |= PlaybackState.ACTION_PAUSE; } if (!mMetadata.has(Metadata.SEEK_BACKWARD_AVAILABLE) || mMetadata.getBoolean(Metadata.SEEK_BACKWARD_AVAILABLE)) { playbackActions |= PlaybackState.ACTION_REWIND; } if (!mMetadata.has(Metadata.SEEK_FORWARD_AVAILABLE) || mMetadata.getBoolean(Metadata.SEEK_FORWARD_AVAILABLE)) { playbackActions |= PlaybackState.ACTION_FAST_FORWARD; } if (!mMetadata.has(Metadata.SEEK_AVAILABLE) || mMetadata.getBoolean(Metadata.SEEK_AVAILABLE)) { playbackActions |= PlaybackState.ACTION_SEEK_TO; } } else { playbackActions |= (PlaybackState.ACTION_PAUSE | PlaybackState.ACTION_REWIND | PlaybackState.ACTION_FAST_FORWARD | PlaybackState.ACTION_SEEK_TO); long playbackActions = PlaybackState.ACTION_PLAY | PlaybackState.ACTION_PAUSE; if (mSeekable) { playbackActions |= (PlaybackState.ACTION_REWIND | PlaybackState.ACTION_FAST_FORWARD | PlaybackState.ACTION_SEEK_TO); } mStateBuilder = new PlaybackState.Builder(); mStateBuilder.setActions(playbackActions); Loading Loading @@ -1004,9 +982,6 @@ public class VideoView2Impl extends BaseLayout private void extractMetadata() { // Get and set duration and title values as MediaMetadata for MediaControlView2 MediaMetadata.Builder builder = new MediaMetadata.Builder(); if (mMetadata != null && mMetadata.has(Metadata.TITLE)) { mTitle = mMetadata.getString(Metadata.TITLE); } builder.putString(MediaMetadata.METADATA_KEY_TITLE, mTitle); builder.putLong( MediaMetadata.METADATA_KEY_DURATION, mMediaPlayer.getDuration()); Loading Loading @@ -1169,6 +1144,8 @@ public class VideoView2Impl extends BaseLayout this.onCompletion(mp, dsd); } else if (what == MediaPlayer2.MEDIA_INFO_BUFFERING_UPDATE) { this.onBufferingUpdate(mp, dsd, extra); } else if (what == MediaPlayer2.MEDIA_INFO_NOT_SEEKABLE) { mSeekable = false; } } Loading @@ -1180,6 +1157,7 @@ public class VideoView2Impl extends BaseLayout } mCurrentState = STATE_ERROR; mTargetState = STATE_ERROR; mSeekable = true; updatePlaybackState(); if (mMediaControlView != null) { Loading Loading @@ -1254,6 +1232,7 @@ public class VideoView2Impl extends BaseLayout private void onCompletion(MediaPlayer2 mp, DataSourceDesc dsd) { mCurrentState = STATE_PLAYBACK_COMPLETED; mTargetState = STATE_PLAYBACK_COMPLETED; mSeekable = true; updatePlaybackState(); if (mAudioFocusType != AudioManager.AUDIOFOCUS_NONE) { mAudioManager.abandonAudioFocus(null); Loading Loading
packages/MediaComponents/src/com/android/widget/VideoView2Impl.java +10 −31 Original line number Diff line number Diff line Loading @@ -35,7 +35,6 @@ import android.media.MediaMetadataRetriever; import android.media.MediaPlayer2; import android.media.MediaPlayer2.EventCallback; import android.media.MediaPlayer2Impl; import android.media.Metadata; import android.media.PlaybackParams; import android.media.SessionToken2; import android.media.SubtitleData; Loading Loading @@ -125,7 +124,7 @@ public class VideoView2Impl extends BaseLayout private MediaControlView2 mMediaControlView; private MediaSession mMediaSession; private MediaController mMediaController; private Metadata mMetadata; private boolean mSeekable; private MediaMetadata2 mMediaMetadata; private MediaMetadataRetriever mRetriever; private boolean mNeedUpdateMediaType; Loading Loading @@ -262,6 +261,7 @@ public class VideoView2Impl extends BaseLayout mSpeed = 1.0f; mFallbackSpeed = mSpeed; mSelectedSubtitleTrackIndex = INVALID_TRACK_INDEX; mSeekable = true; // TODO: add attributes to get this value. mShowControllerIntervalMs = DEFAULT_SHOW_CONTROLLER_INTERVAL_MS; Loading Loading @@ -795,33 +795,11 @@ public class VideoView2Impl extends BaseLayout private void updatePlaybackState() { if (mStateBuilder == null) { // Get the capabilities of the player for this stream mMetadata = mMediaPlayer.getMetadata(MediaPlayer2.METADATA_ALL, MediaPlayer2.BYPASS_METADATA_FILTER); // Add Play action as default long playbackActions = PlaybackState.ACTION_PLAY; if (mMetadata != null) { if (!mMetadata.has(Metadata.PAUSE_AVAILABLE) || mMetadata.getBoolean(Metadata.PAUSE_AVAILABLE)) { playbackActions |= PlaybackState.ACTION_PAUSE; } if (!mMetadata.has(Metadata.SEEK_BACKWARD_AVAILABLE) || mMetadata.getBoolean(Metadata.SEEK_BACKWARD_AVAILABLE)) { playbackActions |= PlaybackState.ACTION_REWIND; } if (!mMetadata.has(Metadata.SEEK_FORWARD_AVAILABLE) || mMetadata.getBoolean(Metadata.SEEK_FORWARD_AVAILABLE)) { playbackActions |= PlaybackState.ACTION_FAST_FORWARD; } if (!mMetadata.has(Metadata.SEEK_AVAILABLE) || mMetadata.getBoolean(Metadata.SEEK_AVAILABLE)) { playbackActions |= PlaybackState.ACTION_SEEK_TO; } } else { playbackActions |= (PlaybackState.ACTION_PAUSE | PlaybackState.ACTION_REWIND | PlaybackState.ACTION_FAST_FORWARD | PlaybackState.ACTION_SEEK_TO); long playbackActions = PlaybackState.ACTION_PLAY | PlaybackState.ACTION_PAUSE; if (mSeekable) { playbackActions |= (PlaybackState.ACTION_REWIND | PlaybackState.ACTION_FAST_FORWARD | PlaybackState.ACTION_SEEK_TO); } mStateBuilder = new PlaybackState.Builder(); mStateBuilder.setActions(playbackActions); Loading Loading @@ -1004,9 +982,6 @@ public class VideoView2Impl extends BaseLayout private void extractMetadata() { // Get and set duration and title values as MediaMetadata for MediaControlView2 MediaMetadata.Builder builder = new MediaMetadata.Builder(); if (mMetadata != null && mMetadata.has(Metadata.TITLE)) { mTitle = mMetadata.getString(Metadata.TITLE); } builder.putString(MediaMetadata.METADATA_KEY_TITLE, mTitle); builder.putLong( MediaMetadata.METADATA_KEY_DURATION, mMediaPlayer.getDuration()); Loading Loading @@ -1169,6 +1144,8 @@ public class VideoView2Impl extends BaseLayout this.onCompletion(mp, dsd); } else if (what == MediaPlayer2.MEDIA_INFO_BUFFERING_UPDATE) { this.onBufferingUpdate(mp, dsd, extra); } else if (what == MediaPlayer2.MEDIA_INFO_NOT_SEEKABLE) { mSeekable = false; } } Loading @@ -1180,6 +1157,7 @@ public class VideoView2Impl extends BaseLayout } mCurrentState = STATE_ERROR; mTargetState = STATE_ERROR; mSeekable = true; updatePlaybackState(); if (mMediaControlView != null) { Loading Loading @@ -1254,6 +1232,7 @@ public class VideoView2Impl extends BaseLayout private void onCompletion(MediaPlayer2 mp, DataSourceDesc dsd) { mCurrentState = STATE_PLAYBACK_COMPLETED; mTargetState = STATE_PLAYBACK_COMPLETED; mSeekable = true; updatePlaybackState(); if (mAudioFocusType != AudioManager.AUDIOFOCUS_NONE) { mAudioManager.abandonAudioFocus(null); Loading