private void initializeMediaSession() { mSession = new MediaSessionCompat(this, TAG); mSession.setFlags( MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS | MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS); mSession.setActive(true); MediaControllerCompat.setMediaController(this, mSession.getController()); MediaMetadataCompat metadata = new MediaMetadataCompat.Builder() .putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, mMovieView.getTitle()) .build(); mSession.setMetadata(metadata); MediaSessionCallback mMediaSessionCallback = new MediaSessionCallback(mMovieView); mSession.setCallback(mMediaSessionCallback); int state = mMovieView.isPlaying() ? PlaybackStateCompat.STATE_PLAYING : PlaybackStateCompat.STATE_PAUSED; updatePlaybackState( state, MEDIA_ACTIONS_ALL, mMovieView.getCurrentPosition(), mMovieView.getVideoResourceId()); }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); int movieId = getActivity().getIntent().getIntExtra(EXTRA_MOVIE_ID, -1); if (movieId == -1) { Log.w(TAG, "Invalid movieId, cannot playback."); throw new IllegalArgumentException("Invalid movieId " + movieId); } mPlaylistAdapter = MockPlaylistAdapterFactory.createMoviePlaylistAdapterWithActiveMovieId(movieId); mSession = new MediaSessionCompat(getContext(), TAG); mSession.setFlags( MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS | MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS); mSession.setActive(true); MediaControllerCompat.setMediaController((Activity) getContext(), mSession.getController()); mPlayerGlue = new PrimaryPlaybackControlsGlue<>( getContext(), new MediaPlayerAdapter(getContext()), mSession.getController()); mPlayerGlue.setHost(new VideoSupportFragmentGlueHost(this)); mPlayerGlue.addPlayerCallback(playWhenReadyPlayerCallback); mPlayerGlue.addPlayerCallback(playPausePlayerCallback); mMediaSessionCallback = new MediaSessionCallback(mPlayerGlue); mSession.setCallback(mMediaSessionCallback); playMedia(mPlaylistAdapter.getCurrentItem()); }