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();
}
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);
}
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);
}
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);
}
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);
}
Aggregations