public void playMediaItem()

in LeanbackShowcase/app/src/main/java/androidx/leanback/leanbackshowcase/app/media/MusicPlaybackService.java [224:255]


    public void playMediaItem(MediaMetaData mediaItemToPlay) {
        if (mediaItemToPlay == null) {
            throw new IllegalArgumentException("mediaItemToPlay is null!");
        }
        int mediaItemPos = findMediaItemPosition(mediaItemToPlay);
        if (mediaItemPos == -1) {
            throw new IllegalArgumentException("mediaItemToPlay not found in the media item list!");
        }

        if (mAudioManager.requestAudioFocus(mOnAudioFocusChangeListener, AudioManager.STREAM_MUSIC,
                AudioManager.AUDIOFOCUS_GAIN) != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
            Log.e(TAG, "playMediaItem cannot obtain audio focus!");
            return;
        }

        if (!mMediaSession.isActive()) {
            mMediaSession.setActive(true);
        }

        if (mCurrentMediaItem != null && mInitialized &&
                mCurrentMediaItem.getMediaSourceUri().equals(mediaItemToPlay.getMediaSourceUri())) {
            if (!isPlaying()) {
                // This media item had been already playing but is being paused. Will resume the player.
                // No need to reset the player
                play();
            }
        } else {
            mCurrentMediaPosition = mediaItemPos;
            notifyMediaItemChanged(mediaItemToPlay);
            prepareNewMedia();
        }
    }