Search in sources :

Example 1 with COMMAND_CHANGE_MEDIA_ITEMS

use of androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS in project media by androidx.

the class ExoPlayerTest method isCommandAvailable_isTrueForAvailableCommands.

@Test
public void isCommandAvailable_isTrueForAvailableCommands() {
    ExoPlayer player = new TestExoPlayerBuilder(context).build();
    player.addMediaSources(ImmutableList.of(new FakeMediaSource(), new FakeMediaSource()));
    assertThat(player.isCommandAvailable(COMMAND_PLAY_PAUSE)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_PREPARE)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_STOP)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_DEFAULT_POSITION)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM)).isFalse();
    assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM)).isFalse();
    assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_NEXT)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_MEDIA_ITEM)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_SEEK_BACK)).isFalse();
    assertThat(player.isCommandAvailable(COMMAND_SEEK_FORWARD)).isFalse();
    assertThat(player.isCommandAvailable(COMMAND_SET_SPEED_AND_PITCH)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_SET_SHUFFLE_MODE)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_SET_REPEAT_MODE)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_GET_CURRENT_MEDIA_ITEM)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_GET_TIMELINE)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_SET_MEDIA_ITEMS_METADATA)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_CHANGE_MEDIA_ITEMS)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_GET_AUDIO_ATTRIBUTES)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_GET_VOLUME)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_GET_DEVICE_VOLUME)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_SET_VOLUME)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_SET_DEVICE_VOLUME)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_ADJUST_DEVICE_VOLUME)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_SET_VIDEO_SURFACE)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_GET_TEXT)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_SET_TRACK_SELECTION_PARAMETERS)).isTrue();
    assertThat(player.isCommandAvailable(COMMAND_GET_TRACK_INFOS)).isTrue();
}
Also used : FakeMediaSource(androidx.media3.test.utils.FakeMediaSource) TestExoPlayerBuilder(androidx.media3.test.utils.TestExoPlayerBuilder) Test(org.junit.Test)

Example 2 with COMMAND_CHANGE_MEDIA_ITEMS

use of androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS in project media by androidx.

the class MediaSessionStub method setMediaItem.

@Override
public void setMediaItem(@Nullable IMediaController caller, int seq, @Nullable Bundle mediaItemBundle) {
    if (caller == null || mediaItemBundle == null) {
        return;
    }
    MediaItem mediaItem;
    try {
        mediaItem = MediaItem.CREATOR.fromBundle(mediaItemBundle);
    } catch (RuntimeException e) {
        Log.w(TAG, "Ignoring malformed Bundle for MediaItem", e);
        return;
    }
    dispatchSessionTaskWithPlayerCommand(caller, seq, COMMAND_CHANGE_MEDIA_ITEMS, (sessionImpl, controller) -> {
        MediaItem mediaItemWithPlaybackProperties = sessionImpl.fillInLocalConfiguration(controller, mediaItem);
        sessionImpl.getPlayerWrapper().setMediaItem(mediaItemWithPlaybackProperties);
        return SessionResult.RESULT_SUCCESS;
    }, MediaSessionStub::sendSessionResult);
}
Also used : MediaItem(androidx.media3.common.MediaItem)

Example 3 with COMMAND_CHANGE_MEDIA_ITEMS

use of androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS in project media by androidx.

the class MediaSessionStub method setMediaItemWithStartPosition.

@Override
public void setMediaItemWithStartPosition(@Nullable IMediaController caller, int seq, @Nullable Bundle mediaItemBundle, long startPositionMs) {
    if (caller == null || mediaItemBundle == null) {
        return;
    }
    MediaItem mediaItem;
    try {
        mediaItem = MediaItem.CREATOR.fromBundle(mediaItemBundle);
    } catch (RuntimeException e) {
        Log.w(TAG, "Ignoring malformed Bundle for MediaItem", e);
        return;
    }
    dispatchSessionTaskWithPlayerCommand(caller, seq, COMMAND_CHANGE_MEDIA_ITEMS, (sessionImpl, controller) -> {
        MediaItem mediaItemWithPlaybackProperties = sessionImpl.fillInLocalConfiguration(controller, mediaItem);
        sessionImpl.getPlayerWrapper().setMediaItem(mediaItemWithPlaybackProperties, startPositionMs);
        return SessionResult.RESULT_SUCCESS;
    }, MediaSessionStub::sendSessionResult);
}
Also used : MediaItem(androidx.media3.common.MediaItem)

Example 4 with COMMAND_CHANGE_MEDIA_ITEMS

use of androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS in project media by androidx.

the class MediaSessionStub method setMediaItemWithResetPosition.

@Override
public void setMediaItemWithResetPosition(@Nullable IMediaController caller, int seq, @Nullable Bundle mediaItemBundle, boolean resetPosition) {
    if (caller == null || mediaItemBundle == null) {
        return;
    }
    MediaItem mediaItem;
    try {
        mediaItem = MediaItem.CREATOR.fromBundle(mediaItemBundle);
    } catch (RuntimeException e) {
        Log.w(TAG, "Ignoring malformed Bundle for MediaItem", e);
        return;
    }
    dispatchSessionTaskWithPlayerCommand(caller, seq, COMMAND_CHANGE_MEDIA_ITEMS, (sessionImpl, controller) -> {
        MediaItem mediaItemWithPlaybackProperties = sessionImpl.fillInLocalConfiguration(controller, mediaItem);
        sessionImpl.getPlayerWrapper().setMediaItem(mediaItemWithPlaybackProperties, resetPosition);
        return SessionResult.RESULT_SUCCESS;
    }, MediaSessionStub::sendSessionResult);
}
Also used : MediaItem(androidx.media3.common.MediaItem)

Example 5 with COMMAND_CHANGE_MEDIA_ITEMS

use of androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS in project media by androidx.

the class MediaSessionStub method addMediaItemWithIndex.

@Override
public void addMediaItemWithIndex(@Nullable IMediaController caller, int seq, int index, Bundle mediaItemBundle) {
    if (caller == null || mediaItemBundle == null) {
        return;
    }
    MediaItem mediaItem;
    try {
        mediaItem = MediaItem.CREATOR.fromBundle(mediaItemBundle);
    } catch (RuntimeException e) {
        Log.w(TAG, "Ignoring malformed Bundle for MediaItem", e);
        return;
    }
    dispatchSessionTaskWithPlayerCommand(caller, seq, COMMAND_CHANGE_MEDIA_ITEMS, (sessionImpl, controller) -> {
        MediaItem mediaItemWithPlaybackProperties = sessionImpl.fillInLocalConfiguration(controller, mediaItem);
        sessionImpl.getPlayerWrapper().addMediaItem(index, mediaItemWithPlaybackProperties);
        return SessionResult.RESULT_SUCCESS;
    }, MediaSessionStub::sendSessionResult);
}
Also used : MediaItem(androidx.media3.common.MediaItem)

Aggregations

MediaItem (androidx.media3.common.MediaItem)13 ImmutableList (com.google.common.collect.ImmutableList)5 Nullable (androidx.annotation.Nullable)3 Timeline (androidx.media3.common.Timeline)1 FakeMediaSource (androidx.media3.test.utils.FakeMediaSource)1 TestExoPlayerBuilder (androidx.media3.test.utils.TestExoPlayerBuilder)1 Test (org.junit.Test)1