mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Rename misleading COMMAND_GET/SET_MEDIA_ITEMS_METADATA
The setter command is only used for setPlaylistMetadata and can be named COMMAND_SET_PLAYLIST_METADATA. The getter commnad is used to access getMediaMetadata and getPlaylistMetadata and can be better named COMMAND_GET_METADATA to reflect this usage. PiperOrigin-RevId: 523673286
This commit is contained in:
parent
affc237055
commit
c5baf2388c
@ -30,6 +30,9 @@
|
|||||||
objects that are dispatched by the dispatcher.
|
objects that are dispatched by the dispatcher.
|
||||||
* Rename `ExoTrackSelection.blacklist` to `excludeTrack` and
|
* Rename `ExoTrackSelection.blacklist` to `excludeTrack` and
|
||||||
`isBlacklisted` to `isTrackExcluded`.
|
`isBlacklisted` to `isTrackExcluded`.
|
||||||
|
* Deprecate `Player.COMMAND_GET_MEDIA_ITEMS_METADATA` and
|
||||||
|
`COMMAND_SET_MEDIA_ITEMS_METADATA`. Use `COMMAND_GET_METADATA` and
|
||||||
|
`COMMAND_SET_PLAYLIST_METADATA` instead.
|
||||||
* Session:
|
* Session:
|
||||||
* Fix bug where multiple identical queue items published by a legacy
|
* Fix bug where multiple identical queue items published by a legacy
|
||||||
`MediaSessionCompat` result in an exception in `MediaController`
|
`MediaSessionCompat` result in an exception in `MediaController`
|
||||||
|
8
api.txt
8
api.txt
@ -764,7 +764,8 @@ package androidx.media3.common {
|
|||||||
field public static final int COMMAND_GET_AUDIO_ATTRIBUTES = 21; // 0x15
|
field public static final int COMMAND_GET_AUDIO_ATTRIBUTES = 21; // 0x15
|
||||||
field public static final int COMMAND_GET_CURRENT_MEDIA_ITEM = 16; // 0x10
|
field public static final int COMMAND_GET_CURRENT_MEDIA_ITEM = 16; // 0x10
|
||||||
field public static final int COMMAND_GET_DEVICE_VOLUME = 23; // 0x17
|
field public static final int COMMAND_GET_DEVICE_VOLUME = 23; // 0x17
|
||||||
field public static final int COMMAND_GET_MEDIA_ITEMS_METADATA = 18; // 0x12
|
field @Deprecated public static final int COMMAND_GET_MEDIA_ITEMS_METADATA = 18; // 0x12
|
||||||
|
field public static final int COMMAND_GET_METADATA = 18; // 0x12
|
||||||
field public static final int COMMAND_GET_TEXT = 28; // 0x1c
|
field public static final int COMMAND_GET_TEXT = 28; // 0x1c
|
||||||
field public static final int COMMAND_GET_TIMELINE = 17; // 0x11
|
field public static final int COMMAND_GET_TIMELINE = 17; // 0x11
|
||||||
field public static final int COMMAND_GET_TRACKS = 30; // 0x1e
|
field public static final int COMMAND_GET_TRACKS = 30; // 0x1e
|
||||||
@ -784,7 +785,8 @@ package androidx.media3.common {
|
|||||||
field public static final int COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM = 6; // 0x6
|
field public static final int COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM = 6; // 0x6
|
||||||
field public static final int COMMAND_SET_DEVICE_VOLUME = 25; // 0x19
|
field public static final int COMMAND_SET_DEVICE_VOLUME = 25; // 0x19
|
||||||
field public static final int COMMAND_SET_MEDIA_ITEM = 31; // 0x1f
|
field public static final int COMMAND_SET_MEDIA_ITEM = 31; // 0x1f
|
||||||
field public static final int COMMAND_SET_MEDIA_ITEMS_METADATA = 19; // 0x13
|
field @Deprecated public static final int COMMAND_SET_MEDIA_ITEMS_METADATA = 19; // 0x13
|
||||||
|
field public static final int COMMAND_SET_PLAYLIST_METADATA = 19; // 0x13
|
||||||
field public static final int COMMAND_SET_REPEAT_MODE = 15; // 0xf
|
field public static final int COMMAND_SET_REPEAT_MODE = 15; // 0xf
|
||||||
field public static final int COMMAND_SET_SHUFFLE_MODE = 14; // 0xe
|
field public static final int COMMAND_SET_SHUFFLE_MODE = 14; // 0xe
|
||||||
field public static final int COMMAND_SET_SPEED_AND_PITCH = 13; // 0xd
|
field public static final int COMMAND_SET_SPEED_AND_PITCH = 13; // 0xd
|
||||||
@ -853,7 +855,7 @@ package androidx.media3.common {
|
|||||||
field public static final int TIMELINE_CHANGE_REASON_SOURCE_UPDATE = 1; // 0x1
|
field public static final int TIMELINE_CHANGE_REASON_SOURCE_UPDATE = 1; // 0x1
|
||||||
}
|
}
|
||||||
|
|
||||||
@IntDef({androidx.media3.common.Player.COMMAND_INVALID, androidx.media3.common.Player.COMMAND_PLAY_PAUSE, androidx.media3.common.Player.COMMAND_PREPARE, androidx.media3.common.Player.COMMAND_STOP, androidx.media3.common.Player.COMMAND_SEEK_TO_DEFAULT_POSITION, androidx.media3.common.Player.COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS, androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT, androidx.media3.common.Player.COMMAND_SEEK_TO_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_BACK, androidx.media3.common.Player.COMMAND_SEEK_FORWARD, androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH, androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE, androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE, androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_GET_TIMELINE, androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA, androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA, androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS, androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES, androidx.media3.common.Player.COMMAND_GET_VOLUME, androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_SET_VOLUME, androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_ADJUST_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_SET_VIDEO_SURFACE, androidx.media3.common.Player.COMMAND_GET_TEXT, androidx.media3.common.Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS, androidx.media3.common.Player.COMMAND_GET_TRACKS, androidx.media3.common.Player.COMMAND_RELEASE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.Command {
|
@IntDef({androidx.media3.common.Player.COMMAND_INVALID, androidx.media3.common.Player.COMMAND_PLAY_PAUSE, androidx.media3.common.Player.COMMAND_PREPARE, androidx.media3.common.Player.COMMAND_STOP, androidx.media3.common.Player.COMMAND_SEEK_TO_DEFAULT_POSITION, androidx.media3.common.Player.COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS, androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT, androidx.media3.common.Player.COMMAND_SEEK_TO_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_BACK, androidx.media3.common.Player.COMMAND_SEEK_FORWARD, androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH, androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE, androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE, androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_GET_TIMELINE, androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA, androidx.media3.common.Player.COMMAND_GET_METADATA, androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA, androidx.media3.common.Player.COMMAND_SET_PLAYLIST_METADATA, androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS, androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES, androidx.media3.common.Player.COMMAND_GET_VOLUME, androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_SET_VOLUME, androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_ADJUST_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_SET_VIDEO_SURFACE, androidx.media3.common.Player.COMMAND_GET_TEXT, androidx.media3.common.Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS, androidx.media3.common.Player.COMMAND_GET_TRACKS, androidx.media3.common.Player.COMMAND_RELEASE}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final class Player.Commands {
|
public static final class Player.Commands {
|
||||||
|
@ -104,8 +104,8 @@ public final class CastPlayer extends BasePlayer {
|
|||||||
COMMAND_SET_SPEED_AND_PITCH,
|
COMMAND_SET_SPEED_AND_PITCH,
|
||||||
COMMAND_GET_CURRENT_MEDIA_ITEM,
|
COMMAND_GET_CURRENT_MEDIA_ITEM,
|
||||||
COMMAND_GET_TIMELINE,
|
COMMAND_GET_TIMELINE,
|
||||||
COMMAND_GET_MEDIA_ITEMS_METADATA,
|
COMMAND_GET_METADATA,
|
||||||
COMMAND_SET_MEDIA_ITEMS_METADATA,
|
COMMAND_SET_PLAYLIST_METADATA,
|
||||||
COMMAND_SET_MEDIA_ITEM,
|
COMMAND_SET_MEDIA_ITEM,
|
||||||
COMMAND_CHANGE_MEDIA_ITEMS,
|
COMMAND_CHANGE_MEDIA_ITEMS,
|
||||||
COMMAND_GET_TRACKS,
|
COMMAND_GET_TRACKS,
|
||||||
|
@ -20,7 +20,7 @@ import static androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS;
|
|||||||
import static androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES;
|
import static androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM;
|
import static androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME;
|
import static androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA;
|
import static androidx.media3.common.Player.COMMAND_GET_METADATA;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_TEXT;
|
import static androidx.media3.common.Player.COMMAND_GET_TEXT;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_TIMELINE;
|
import static androidx.media3.common.Player.COMMAND_GET_TIMELINE;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_VOLUME;
|
import static androidx.media3.common.Player.COMMAND_GET_VOLUME;
|
||||||
@ -37,7 +37,7 @@ import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS;
|
|||||||
import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM;
|
import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME;
|
import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM;
|
import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA;
|
import static androidx.media3.common.Player.COMMAND_SET_PLAYLIST_METADATA;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE;
|
import static androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE;
|
import static androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH;
|
import static androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH;
|
||||||
@ -1360,8 +1360,8 @@ public class CastPlayerTest {
|
|||||||
assertThat(castPlayer.isCommandAvailable(COMMAND_SET_REPEAT_MODE)).isTrue();
|
assertThat(castPlayer.isCommandAvailable(COMMAND_SET_REPEAT_MODE)).isTrue();
|
||||||
assertThat(castPlayer.isCommandAvailable(COMMAND_GET_CURRENT_MEDIA_ITEM)).isTrue();
|
assertThat(castPlayer.isCommandAvailable(COMMAND_GET_CURRENT_MEDIA_ITEM)).isTrue();
|
||||||
assertThat(castPlayer.isCommandAvailable(COMMAND_GET_TIMELINE)).isTrue();
|
assertThat(castPlayer.isCommandAvailable(COMMAND_GET_TIMELINE)).isTrue();
|
||||||
assertThat(castPlayer.isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA)).isTrue();
|
assertThat(castPlayer.isCommandAvailable(COMMAND_GET_METADATA)).isTrue();
|
||||||
assertThat(castPlayer.isCommandAvailable(COMMAND_SET_MEDIA_ITEMS_METADATA)).isTrue();
|
assertThat(castPlayer.isCommandAvailable(COMMAND_SET_PLAYLIST_METADATA)).isTrue();
|
||||||
assertThat(castPlayer.isCommandAvailable(COMMAND_CHANGE_MEDIA_ITEMS)).isTrue();
|
assertThat(castPlayer.isCommandAvailable(COMMAND_CHANGE_MEDIA_ITEMS)).isTrue();
|
||||||
assertThat(castPlayer.isCommandAvailable(COMMAND_SET_MEDIA_ITEM)).isTrue();
|
assertThat(castPlayer.isCommandAvailable(COMMAND_SET_MEDIA_ITEM)).isTrue();
|
||||||
assertThat(castPlayer.isCommandAvailable(COMMAND_GET_AUDIO_ATTRIBUTES)).isFalse();
|
assertThat(castPlayer.isCommandAvailable(COMMAND_GET_AUDIO_ATTRIBUTES)).isFalse();
|
||||||
|
@ -371,8 +371,8 @@ public interface Player {
|
|||||||
COMMAND_SET_REPEAT_MODE,
|
COMMAND_SET_REPEAT_MODE,
|
||||||
COMMAND_GET_CURRENT_MEDIA_ITEM,
|
COMMAND_GET_CURRENT_MEDIA_ITEM,
|
||||||
COMMAND_GET_TIMELINE,
|
COMMAND_GET_TIMELINE,
|
||||||
COMMAND_GET_MEDIA_ITEMS_METADATA,
|
COMMAND_GET_METADATA,
|
||||||
COMMAND_SET_MEDIA_ITEMS_METADATA,
|
COMMAND_SET_PLAYLIST_METADATA,
|
||||||
COMMAND_SET_MEDIA_ITEM,
|
COMMAND_SET_MEDIA_ITEM,
|
||||||
COMMAND_CHANGE_MEDIA_ITEMS,
|
COMMAND_CHANGE_MEDIA_ITEMS,
|
||||||
COMMAND_GET_AUDIO_ATTRIBUTES,
|
COMMAND_GET_AUDIO_ATTRIBUTES,
|
||||||
@ -1428,8 +1428,8 @@ public interface Player {
|
|||||||
* <li>{@link #COMMAND_SET_REPEAT_MODE}
|
* <li>{@link #COMMAND_SET_REPEAT_MODE}
|
||||||
* <li>{@link #COMMAND_GET_CURRENT_MEDIA_ITEM}
|
* <li>{@link #COMMAND_GET_CURRENT_MEDIA_ITEM}
|
||||||
* <li>{@link #COMMAND_GET_TIMELINE}
|
* <li>{@link #COMMAND_GET_TIMELINE}
|
||||||
* <li>{@link #COMMAND_GET_MEDIA_ITEMS_METADATA}
|
* <li>{@link #COMMAND_GET_METADATA}
|
||||||
* <li>{@link #COMMAND_SET_MEDIA_ITEMS_METADATA}
|
* <li>{@link #COMMAND_SET_PLAYLIST_METADATA}
|
||||||
* <li>{@link #COMMAND_SET_MEDIA_ITEM}
|
* <li>{@link #COMMAND_SET_MEDIA_ITEM}
|
||||||
* <li>{@link #COMMAND_CHANGE_MEDIA_ITEMS}
|
* <li>{@link #COMMAND_CHANGE_MEDIA_ITEMS}
|
||||||
* <li>{@link #COMMAND_GET_AUDIO_ATTRIBUTES}
|
* <li>{@link #COMMAND_GET_AUDIO_ATTRIBUTES}
|
||||||
@ -1447,6 +1447,7 @@ public interface Player {
|
|||||||
*/
|
*/
|
||||||
// @Target list includes both 'default' targets and TYPE_USE, to ensure backwards compatibility
|
// @Target list includes both 'default' targets and TYPE_USE, to ensure backwards compatibility
|
||||||
// with Kotlin usages from before TYPE_USE was added.
|
// with Kotlin usages from before TYPE_USE was added.
|
||||||
|
@SuppressWarnings("deprecation") // Listing deprecated constants.
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
@Target({FIELD, METHOD, PARAMETER, LOCAL_VARIABLE, TYPE_USE})
|
@Target({FIELD, METHOD, PARAMETER, LOCAL_VARIABLE, TYPE_USE})
|
||||||
@ -1470,7 +1471,9 @@ public interface Player {
|
|||||||
COMMAND_GET_CURRENT_MEDIA_ITEM,
|
COMMAND_GET_CURRENT_MEDIA_ITEM,
|
||||||
COMMAND_GET_TIMELINE,
|
COMMAND_GET_TIMELINE,
|
||||||
COMMAND_GET_MEDIA_ITEMS_METADATA,
|
COMMAND_GET_MEDIA_ITEMS_METADATA,
|
||||||
|
COMMAND_GET_METADATA,
|
||||||
COMMAND_SET_MEDIA_ITEMS_METADATA,
|
COMMAND_SET_MEDIA_ITEMS_METADATA,
|
||||||
|
COMMAND_SET_PLAYLIST_METADATA,
|
||||||
COMMAND_SET_MEDIA_ITEM,
|
COMMAND_SET_MEDIA_ITEM,
|
||||||
COMMAND_CHANGE_MEDIA_ITEMS,
|
COMMAND_CHANGE_MEDIA_ITEMS,
|
||||||
COMMAND_GET_AUDIO_ATTRIBUTES,
|
COMMAND_GET_AUDIO_ATTRIBUTES,
|
||||||
@ -1682,6 +1685,11 @@ public interface Player {
|
|||||||
*/
|
*/
|
||||||
int COMMAND_GET_TIMELINE = 17;
|
int COMMAND_GET_TIMELINE = 17;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Use {@link #COMMAND_GET_METADATA} instead.
|
||||||
|
*/
|
||||||
|
@Deprecated int COMMAND_GET_MEDIA_ITEMS_METADATA = 18;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Command to get metadata related to the playlist and current {@link MediaItem}.
|
* Command to get metadata related to the playlist and current {@link MediaItem}.
|
||||||
*
|
*
|
||||||
@ -1693,8 +1701,12 @@ public interface Player {
|
|||||||
* <li>{@link #getPlaylistMetadata()}
|
* <li>{@link #getPlaylistMetadata()}
|
||||||
* </ul>
|
* </ul>
|
||||||
*/
|
*/
|
||||||
// TODO(b/263132691): Rename this to COMMAND_GET_METADATA
|
int COMMAND_GET_METADATA = 18;
|
||||||
int COMMAND_GET_MEDIA_ITEMS_METADATA = 18;
|
|
||||||
|
/**
|
||||||
|
* @deprecated Use {@link #COMMAND_SET_PLAYLIST_METADATA} instead.
|
||||||
|
*/
|
||||||
|
@Deprecated int COMMAND_SET_MEDIA_ITEMS_METADATA = 19;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Command to set the playlist metadata.
|
* Command to set the playlist metadata.
|
||||||
@ -1702,8 +1714,7 @@ public interface Player {
|
|||||||
* <p>The {@link #setPlaylistMetadata(MediaMetadata)} method must only be called if this command
|
* <p>The {@link #setPlaylistMetadata(MediaMetadata)} method must only be called if this command
|
||||||
* is {@linkplain #isCommandAvailable(int) available}.
|
* is {@linkplain #isCommandAvailable(int) available}.
|
||||||
*/
|
*/
|
||||||
// TODO(b/263132691): Rename this to COMMAND_SET_PLAYLIST_METADATA
|
int COMMAND_SET_PLAYLIST_METADATA = 19;
|
||||||
int COMMAND_SET_MEDIA_ITEMS_METADATA = 19;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Command to set a {@link MediaItem}.
|
* Command to set a {@link MediaItem}.
|
||||||
@ -2582,7 +2593,7 @@ public interface Player {
|
|||||||
* Listener#onMetadata(Metadata)}. If a field is populated in the {@link MediaItem#mediaMetadata},
|
* Listener#onMetadata(Metadata)}. If a field is populated in the {@link MediaItem#mediaMetadata},
|
||||||
* it will be prioritised above the same field coming from static or timed metadata.
|
* it will be prioritised above the same field coming from static or timed metadata.
|
||||||
*
|
*
|
||||||
* <p>This method must only be called if {@link #COMMAND_GET_MEDIA_ITEMS_METADATA} is {@linkplain
|
* <p>This method must only be called if {@link #COMMAND_GET_METADATA} is {@linkplain
|
||||||
* #getAvailableCommands() available}.
|
* #getAvailableCommands() available}.
|
||||||
*/
|
*/
|
||||||
MediaMetadata getMediaMetadata();
|
MediaMetadata getMediaMetadata();
|
||||||
@ -2591,7 +2602,7 @@ public interface Player {
|
|||||||
* Returns the playlist {@link MediaMetadata}, as set by {@link
|
* Returns the playlist {@link MediaMetadata}, as set by {@link
|
||||||
* #setPlaylistMetadata(MediaMetadata)}, or {@link MediaMetadata#EMPTY} if not supported.
|
* #setPlaylistMetadata(MediaMetadata)}, or {@link MediaMetadata#EMPTY} if not supported.
|
||||||
*
|
*
|
||||||
* <p>This method must only be called if {@link #COMMAND_GET_MEDIA_ITEMS_METADATA} is {@linkplain
|
* <p>This method must only be called if {@link #COMMAND_GET_METADATA} is {@linkplain
|
||||||
* #getAvailableCommands() available}.
|
* #getAvailableCommands() available}.
|
||||||
*/
|
*/
|
||||||
MediaMetadata getPlaylistMetadata();
|
MediaMetadata getPlaylistMetadata();
|
||||||
@ -2599,7 +2610,7 @@ public interface Player {
|
|||||||
/**
|
/**
|
||||||
* Sets the playlist {@link MediaMetadata}.
|
* Sets the playlist {@link MediaMetadata}.
|
||||||
*
|
*
|
||||||
* <p>This method must only be called if {@link #COMMAND_SET_MEDIA_ITEMS_METADATA} is {@linkplain
|
* <p>This method must only be called if {@link #COMMAND_SET_PLAYLIST_METADATA} is {@linkplain
|
||||||
* #getAvailableCommands() available}.
|
* #getAvailableCommands() available}.
|
||||||
*/
|
*/
|
||||||
void setPlaylistMetadata(MediaMetadata mediaMetadata);
|
void setPlaylistMetadata(MediaMetadata mediaMetadata);
|
||||||
|
@ -2393,7 +2393,7 @@ public abstract class SimpleBasePlayer extends BasePlayer {
|
|||||||
verifyApplicationThreadAndInitState();
|
verifyApplicationThreadAndInitState();
|
||||||
// Use a local copy to ensure the lambda below uses the current state value.
|
// Use a local copy to ensure the lambda below uses the current state value.
|
||||||
State state = this.state;
|
State state = this.state;
|
||||||
if (!shouldHandleCommand(Player.COMMAND_SET_MEDIA_ITEMS_METADATA)) {
|
if (!shouldHandleCommand(Player.COMMAND_SET_PLAYLIST_METADATA)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
updateStateForPendingOperation(
|
updateStateForPendingOperation(
|
||||||
@ -2900,7 +2900,7 @@ public abstract class SimpleBasePlayer extends BasePlayer {
|
|||||||
/**
|
/**
|
||||||
* Handles calls to {@link Player#setPlaylistMetadata}.
|
* Handles calls to {@link Player#setPlaylistMetadata}.
|
||||||
*
|
*
|
||||||
* <p>Will only be called if {@link Player#COMMAND_SET_MEDIA_ITEMS_METADATA} is available.
|
* <p>Will only be called if {@link Player#COMMAND_SET_PLAYLIST_METADATA} is available.
|
||||||
*
|
*
|
||||||
* @param playlistMetadata The requested {@linkplain MediaMetadata playlist metadata}.
|
* @param playlistMetadata The requested {@linkplain MediaMetadata playlist metadata}.
|
||||||
* @return A {@link ListenableFuture} indicating the completion of all immediate {@link State}
|
* @return A {@link ListenableFuture} indicating the completion of all immediate {@link State}
|
||||||
@ -2909,7 +2909,7 @@ public abstract class SimpleBasePlayer extends BasePlayer {
|
|||||||
@ForOverride
|
@ForOverride
|
||||||
protected ListenableFuture<?> handleSetPlaylistMetadata(MediaMetadata playlistMetadata) {
|
protected ListenableFuture<?> handleSetPlaylistMetadata(MediaMetadata playlistMetadata) {
|
||||||
throw new IllegalStateException(
|
throw new IllegalStateException(
|
||||||
"Missing implementation to handle COMMAND_SET_MEDIA_ITEMS_METADATA");
|
"Missing implementation to handle COMMAND_SET_PLAYLIST_METADATA");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -3060,7 +3060,7 @@ public class SimpleBasePlayerTest {
|
|||||||
.setAvailableCommands(
|
.setAvailableCommands(
|
||||||
new Commands.Builder()
|
new Commands.Builder()
|
||||||
.addAllCommands()
|
.addAllCommands()
|
||||||
.remove(Player.COMMAND_SET_MEDIA_ITEMS_METADATA)
|
.remove(Player.COMMAND_SET_PLAYLIST_METADATA)
|
||||||
.build())
|
.build())
|
||||||
.build();
|
.build();
|
||||||
AtomicBoolean callForwarded = new AtomicBoolean();
|
AtomicBoolean callForwarded = new AtomicBoolean();
|
||||||
|
@ -299,8 +299,8 @@ import java.util.concurrent.TimeoutException;
|
|||||||
COMMAND_SET_REPEAT_MODE,
|
COMMAND_SET_REPEAT_MODE,
|
||||||
COMMAND_GET_CURRENT_MEDIA_ITEM,
|
COMMAND_GET_CURRENT_MEDIA_ITEM,
|
||||||
COMMAND_GET_TIMELINE,
|
COMMAND_GET_TIMELINE,
|
||||||
COMMAND_GET_MEDIA_ITEMS_METADATA,
|
COMMAND_GET_METADATA,
|
||||||
COMMAND_SET_MEDIA_ITEMS_METADATA,
|
COMMAND_SET_PLAYLIST_METADATA,
|
||||||
COMMAND_SET_MEDIA_ITEM,
|
COMMAND_SET_MEDIA_ITEM,
|
||||||
COMMAND_CHANGE_MEDIA_ITEMS,
|
COMMAND_CHANGE_MEDIA_ITEMS,
|
||||||
COMMAND_GET_TRACKS,
|
COMMAND_GET_TRACKS,
|
||||||
|
@ -20,7 +20,7 @@ import static androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS;
|
|||||||
import static androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES;
|
import static androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM;
|
import static androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME;
|
import static androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA;
|
import static androidx.media3.common.Player.COMMAND_GET_METADATA;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_TEXT;
|
import static androidx.media3.common.Player.COMMAND_GET_TEXT;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_TIMELINE;
|
import static androidx.media3.common.Player.COMMAND_GET_TIMELINE;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_TRACKS;
|
import static androidx.media3.common.Player.COMMAND_GET_TRACKS;
|
||||||
@ -39,7 +39,7 @@ import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS;
|
|||||||
import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM;
|
import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME;
|
import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM;
|
import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA;
|
import static androidx.media3.common.Player.COMMAND_SET_PLAYLIST_METADATA;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE;
|
import static androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE;
|
import static androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH;
|
import static androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH;
|
||||||
@ -9100,8 +9100,8 @@ public final class ExoPlayerTest {
|
|||||||
assertThat(player.isCommandAvailable(COMMAND_SET_REPEAT_MODE)).isTrue();
|
assertThat(player.isCommandAvailable(COMMAND_SET_REPEAT_MODE)).isTrue();
|
||||||
assertThat(player.isCommandAvailable(COMMAND_GET_CURRENT_MEDIA_ITEM)).isTrue();
|
assertThat(player.isCommandAvailable(COMMAND_GET_CURRENT_MEDIA_ITEM)).isTrue();
|
||||||
assertThat(player.isCommandAvailable(COMMAND_GET_TIMELINE)).isTrue();
|
assertThat(player.isCommandAvailable(COMMAND_GET_TIMELINE)).isTrue();
|
||||||
assertThat(player.isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA)).isTrue();
|
assertThat(player.isCommandAvailable(COMMAND_GET_METADATA)).isTrue();
|
||||||
assertThat(player.isCommandAvailable(COMMAND_SET_MEDIA_ITEMS_METADATA)).isTrue();
|
assertThat(player.isCommandAvailable(COMMAND_SET_PLAYLIST_METADATA)).isTrue();
|
||||||
assertThat(player.isCommandAvailable(COMMAND_CHANGE_MEDIA_ITEMS)).isTrue();
|
assertThat(player.isCommandAvailable(COMMAND_CHANGE_MEDIA_ITEMS)).isTrue();
|
||||||
assertThat(player.isCommandAvailable(COMMAND_SET_MEDIA_ITEM)).isTrue();
|
assertThat(player.isCommandAvailable(COMMAND_SET_MEDIA_ITEM)).isTrue();
|
||||||
assertThat(player.isCommandAvailable(COMMAND_GET_AUDIO_ATTRIBUTES)).isTrue();
|
assertThat(player.isCommandAvailable(COMMAND_GET_AUDIO_ATTRIBUTES)).isTrue();
|
||||||
@ -12416,8 +12416,8 @@ public final class ExoPlayerTest {
|
|||||||
COMMAND_SET_REPEAT_MODE,
|
COMMAND_SET_REPEAT_MODE,
|
||||||
COMMAND_GET_CURRENT_MEDIA_ITEM,
|
COMMAND_GET_CURRENT_MEDIA_ITEM,
|
||||||
COMMAND_GET_TIMELINE,
|
COMMAND_GET_TIMELINE,
|
||||||
COMMAND_GET_MEDIA_ITEMS_METADATA,
|
COMMAND_GET_METADATA,
|
||||||
COMMAND_SET_MEDIA_ITEMS_METADATA,
|
COMMAND_SET_PLAYLIST_METADATA,
|
||||||
COMMAND_CHANGE_MEDIA_ITEMS,
|
COMMAND_CHANGE_MEDIA_ITEMS,
|
||||||
COMMAND_SET_MEDIA_ITEM,
|
COMMAND_SET_MEDIA_ITEM,
|
||||||
COMMAND_GET_AUDIO_ATTRIBUTES,
|
COMMAND_GET_AUDIO_ATTRIBUTES,
|
||||||
|
@ -319,7 +319,7 @@ public class DefaultMediaNotificationProvider implements MediaNotification.Provi
|
|||||||
mediaStyle.setShowActionsInCompactView(compactViewIndices);
|
mediaStyle.setShowActionsInCompactView(compactViewIndices);
|
||||||
|
|
||||||
// Set metadata info in the notification.
|
// Set metadata info in the notification.
|
||||||
if (player.isCommandAvailable(Player.COMMAND_GET_MEDIA_ITEMS_METADATA)) {
|
if (player.isCommandAvailable(Player.COMMAND_GET_METADATA)) {
|
||||||
MediaMetadata metadata = player.getMediaMetadata();
|
MediaMetadata metadata = player.getMediaMetadata();
|
||||||
builder
|
builder
|
||||||
.setContentTitle(getNotificationContentTitle(metadata))
|
.setContentTitle(getNotificationContentTitle(metadata))
|
||||||
|
@ -831,7 +831,7 @@ import org.checkerframework.checker.nullness.qual.NonNull;
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setPlaylistMetadata(MediaMetadata playlistMetadata) {
|
public void setPlaylistMetadata(MediaMetadata playlistMetadata) {
|
||||||
if (!isPlayerCommandAvailable(Player.COMMAND_SET_MEDIA_ITEMS_METADATA)) {
|
if (!isPlayerCommandAvailable(Player.COMMAND_SET_PLAYLIST_METADATA)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS;
|
|||||||
import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM;
|
import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME;
|
import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM;
|
import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA;
|
import static androidx.media3.common.Player.COMMAND_SET_PLAYLIST_METADATA;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE;
|
import static androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE;
|
import static androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH;
|
import static androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH;
|
||||||
@ -1049,7 +1049,7 @@ import java.util.concurrent.ExecutionException;
|
|||||||
queueSessionTaskWithPlayerCommand(
|
queueSessionTaskWithPlayerCommand(
|
||||||
caller,
|
caller,
|
||||||
sequenceNumber,
|
sequenceNumber,
|
||||||
COMMAND_SET_MEDIA_ITEMS_METADATA,
|
COMMAND_SET_PLAYLIST_METADATA,
|
||||||
sendSessionResultSuccess(player -> player.setPlaylistMetadata(playlistMetadata)));
|
sendSessionResultSuccess(player -> player.setPlaylistMetadata(playlistMetadata)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ import static androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS;
|
|||||||
import static androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES;
|
import static androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM;
|
import static androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME;
|
import static androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA;
|
import static androidx.media3.common.Player.COMMAND_GET_METADATA;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_TIMELINE;
|
import static androidx.media3.common.Player.COMMAND_GET_TIMELINE;
|
||||||
import static androidx.media3.common.Player.COMMAND_PLAY_PAUSE;
|
import static androidx.media3.common.Player.COMMAND_PLAY_PAUSE;
|
||||||
import static androidx.media3.common.Player.COMMAND_PREPARE;
|
import static androidx.media3.common.Player.COMMAND_PREPARE;
|
||||||
@ -1148,7 +1148,7 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
|||||||
playerCommandsBuilder.addAll(
|
playerCommandsBuilder.addAll(
|
||||||
COMMAND_GET_DEVICE_VOLUME,
|
COMMAND_GET_DEVICE_VOLUME,
|
||||||
COMMAND_GET_TIMELINE,
|
COMMAND_GET_TIMELINE,
|
||||||
COMMAND_GET_MEDIA_ITEMS_METADATA,
|
COMMAND_GET_METADATA,
|
||||||
COMMAND_GET_CURRENT_MEDIA_ITEM,
|
COMMAND_GET_CURRENT_MEDIA_ITEM,
|
||||||
COMMAND_GET_AUDIO_ATTRIBUTES,
|
COMMAND_GET_AUDIO_ATTRIBUTES,
|
||||||
COMMAND_RELEASE);
|
COMMAND_RELEASE);
|
||||||
|
@ -829,7 +829,7 @@ import com.google.errorprone.annotations.CanIgnoreReturnValue;
|
|||||||
timeline.toBundleWithOneWindowOnly(sessionPositionInfo.positionInfo.mediaItemIndex));
|
timeline.toBundleWithOneWindowOnly(sessionPositionInfo.positionInfo.mediaItemIndex));
|
||||||
}
|
}
|
||||||
bundle.putBundle(FIELD_VIDEO_SIZE, videoSize.toBundle());
|
bundle.putBundle(FIELD_VIDEO_SIZE, videoSize.toBundle());
|
||||||
if (availableCommands.contains(Player.COMMAND_GET_MEDIA_ITEMS_METADATA)) {
|
if (availableCommands.contains(Player.COMMAND_GET_METADATA)) {
|
||||||
bundle.putBundle(FIELD_PLAYLIST_METADATA, playlistMetadata.toBundle());
|
bundle.putBundle(FIELD_PLAYLIST_METADATA, playlistMetadata.toBundle());
|
||||||
}
|
}
|
||||||
if (availableCommands.contains(Player.COMMAND_GET_VOLUME)) {
|
if (availableCommands.contains(Player.COMMAND_GET_VOLUME)) {
|
||||||
@ -851,7 +851,7 @@ import com.google.errorprone.annotations.CanIgnoreReturnValue;
|
|||||||
bundle.putInt(FIELD_PLAYBACK_STATE, playbackState);
|
bundle.putInt(FIELD_PLAYBACK_STATE, playbackState);
|
||||||
bundle.putBoolean(FIELD_IS_PLAYING, isPlaying);
|
bundle.putBoolean(FIELD_IS_PLAYING, isPlaying);
|
||||||
bundle.putBoolean(FIELD_IS_LOADING, isLoading);
|
bundle.putBoolean(FIELD_IS_LOADING, isLoading);
|
||||||
if (availableCommands.contains(Player.COMMAND_GET_MEDIA_ITEMS_METADATA)) {
|
if (availableCommands.contains(Player.COMMAND_GET_METADATA)) {
|
||||||
bundle.putBundle(FIELD_MEDIA_METADATA, mediaMetadata.toBundle());
|
bundle.putBundle(FIELD_MEDIA_METADATA, mediaMetadata.toBundle());
|
||||||
}
|
}
|
||||||
bundle.putLong(FIELD_SEEK_BACK_INCREMENT_MS, seekBackIncrementMs);
|
bundle.putLong(FIELD_SEEK_BACK_INCREMENT_MS, seekBackIncrementMs);
|
||||||
|
@ -604,7 +604,7 @@ import java.util.List;
|
|||||||
}
|
}
|
||||||
|
|
||||||
public MediaMetadata getPlaylistMetadataWithCommandCheck() {
|
public MediaMetadata getPlaylistMetadataWithCommandCheck() {
|
||||||
return isCommandAvailable(Player.COMMAND_GET_MEDIA_ITEMS_METADATA)
|
return isCommandAvailable(Player.COMMAND_GET_METADATA)
|
||||||
? getPlaylistMetadata()
|
? getPlaylistMetadata()
|
||||||
: MediaMetadata.EMPTY;
|
: MediaMetadata.EMPTY;
|
||||||
}
|
}
|
||||||
@ -811,9 +811,7 @@ import java.util.List;
|
|||||||
}
|
}
|
||||||
|
|
||||||
public MediaMetadata getMediaMetadataWithCommandCheck() {
|
public MediaMetadata getMediaMetadataWithCommandCheck() {
|
||||||
return isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA)
|
return isCommandAvailable(COMMAND_GET_METADATA) ? getMediaMetadata() : MediaMetadata.EMPTY;
|
||||||
? getMediaMetadata()
|
|
||||||
: MediaMetadata.EMPTY;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -1155,7 +1153,7 @@ import java.util.List;
|
|||||||
case Player.COMMAND_GET_AUDIO_ATTRIBUTES:
|
case Player.COMMAND_GET_AUDIO_ATTRIBUTES:
|
||||||
case Player.COMMAND_GET_CURRENT_MEDIA_ITEM:
|
case Player.COMMAND_GET_CURRENT_MEDIA_ITEM:
|
||||||
case Player.COMMAND_GET_DEVICE_VOLUME:
|
case Player.COMMAND_GET_DEVICE_VOLUME:
|
||||||
case Player.COMMAND_GET_MEDIA_ITEMS_METADATA:
|
case Player.COMMAND_GET_METADATA:
|
||||||
case Player.COMMAND_GET_TEXT:
|
case Player.COMMAND_GET_TEXT:
|
||||||
case Player.COMMAND_GET_TIMELINE:
|
case Player.COMMAND_GET_TIMELINE:
|
||||||
case Player.COMMAND_GET_TRACKS:
|
case Player.COMMAND_GET_TRACKS:
|
||||||
@ -1163,7 +1161,7 @@ import java.util.List;
|
|||||||
case Player.COMMAND_INVALID:
|
case Player.COMMAND_INVALID:
|
||||||
case Player.COMMAND_SEEK_TO_DEFAULT_POSITION:
|
case Player.COMMAND_SEEK_TO_DEFAULT_POSITION:
|
||||||
case Player.COMMAND_SET_DEVICE_VOLUME:
|
case Player.COMMAND_SET_DEVICE_VOLUME:
|
||||||
case Player.COMMAND_SET_MEDIA_ITEMS_METADATA:
|
case Player.COMMAND_SET_PLAYLIST_METADATA:
|
||||||
case Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS:
|
case Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS:
|
||||||
case Player.COMMAND_SET_VIDEO_SURFACE:
|
case Player.COMMAND_SET_VIDEO_SURFACE:
|
||||||
case Player.COMMAND_SET_VOLUME:
|
case Player.COMMAND_SET_VOLUME:
|
||||||
|
@ -824,14 +824,14 @@ public class DefaultMediaNotificationProviderTest {
|
|||||||
return new ForwardingPlayer(new TestExoPlayerBuilder(context).build()) {
|
return new ForwardingPlayer(new TestExoPlayerBuilder(context).build()) {
|
||||||
@Override
|
@Override
|
||||||
public boolean isCommandAvailable(int command) {
|
public boolean isCommandAvailable(int command) {
|
||||||
return isMetadataCommandAvailable || command != Player.COMMAND_GET_MEDIA_ITEMS_METADATA;
|
return isMetadataCommandAvailable || command != Player.COMMAND_GET_METADATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Commands getAvailableCommands() {
|
public Commands getAvailableCommands() {
|
||||||
Commands.Builder commandsBuilder = new Commands.Builder().addAllCommands();
|
Commands.Builder commandsBuilder = new Commands.Builder().addAllCommands();
|
||||||
if (!isMetadataCommandAvailable) {
|
if (!isMetadataCommandAvailable) {
|
||||||
commandsBuilder.remove(Player.COMMAND_GET_MEDIA_ITEMS_METADATA);
|
commandsBuilder.remove(Player.COMMAND_GET_METADATA);
|
||||||
}
|
}
|
||||||
return commandsBuilder.build();
|
return commandsBuilder.build();
|
||||||
}
|
}
|
||||||
|
@ -476,7 +476,7 @@ public class PlayerInfoTest {
|
|||||||
playerInfo.toBundle(
|
playerInfo.toBundle(
|
||||||
new Player.Commands.Builder()
|
new Player.Commands.Builder()
|
||||||
.addAllCommands()
|
.addAllCommands()
|
||||||
.remove(Player.COMMAND_GET_MEDIA_ITEMS_METADATA)
|
.remove(Player.COMMAND_GET_METADATA)
|
||||||
.build(),
|
.build(),
|
||||||
/* excludeTimeline= */ false,
|
/* excludeTimeline= */ false,
|
||||||
/* excludeTracks= */ false));
|
/* excludeTracks= */ false));
|
||||||
|
@ -23,7 +23,7 @@ import static androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM;
|
|||||||
import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM;
|
import static androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME;
|
import static androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM;
|
import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA;
|
import static androidx.media3.common.Player.COMMAND_SET_PLAYLIST_METADATA;
|
||||||
import static androidx.media3.common.Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS;
|
import static androidx.media3.common.Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS;
|
||||||
import static androidx.media3.session.MediaUtils.createPlayerCommandsWith;
|
import static androidx.media3.session.MediaUtils.createPlayerCommandsWith;
|
||||||
import static androidx.media3.session.MediaUtils.createPlayerCommandsWithout;
|
import static androidx.media3.session.MediaUtils.createPlayerCommandsWithout;
|
||||||
@ -136,7 +136,7 @@ public class MediaSessionPermissionTest {
|
|||||||
@Test
|
@Test
|
||||||
public void setPlaylistMetadata() throws Exception {
|
public void setPlaylistMetadata() throws Exception {
|
||||||
testOnCommandRequest(
|
testOnCommandRequest(
|
||||||
COMMAND_SET_MEDIA_ITEMS_METADATA,
|
COMMAND_SET_PLAYLIST_METADATA,
|
||||||
controller -> controller.setPlaylistMetadata(MediaMetadata.EMPTY));
|
controller -> controller.setPlaylistMetadata(MediaMetadata.EMPTY));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -497,7 +497,7 @@ public final class MediaUtilsTest {
|
|||||||
Player.COMMAND_GET_TIMELINE,
|
Player.COMMAND_GET_TIMELINE,
|
||||||
Player.COMMAND_GET_CURRENT_MEDIA_ITEM,
|
Player.COMMAND_GET_CURRENT_MEDIA_ITEM,
|
||||||
Player.COMMAND_GET_DEVICE_VOLUME,
|
Player.COMMAND_GET_DEVICE_VOLUME,
|
||||||
Player.COMMAND_GET_MEDIA_ITEMS_METADATA,
|
Player.COMMAND_GET_METADATA,
|
||||||
Player.COMMAND_GET_AUDIO_ATTRIBUTES,
|
Player.COMMAND_GET_AUDIO_ATTRIBUTES,
|
||||||
Player.COMMAND_RELEASE);
|
Player.COMMAND_RELEASE);
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package androidx.media3.ui;
|
package androidx.media3.ui;
|
||||||
|
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA;
|
import static androidx.media3.common.Player.COMMAND_GET_METADATA;
|
||||||
|
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
@ -50,7 +50,7 @@ public final class DefaultMediaDescriptionAdapter implements MediaDescriptionAda
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CharSequence getCurrentContentTitle(Player player) {
|
public CharSequence getCurrentContentTitle(Player player) {
|
||||||
if (!player.isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA)) {
|
if (!player.isCommandAvailable(COMMAND_GET_METADATA)) {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
@Nullable CharSequence displayTitle = player.getMediaMetadata().displayTitle;
|
@Nullable CharSequence displayTitle = player.getMediaMetadata().displayTitle;
|
||||||
@ -71,7 +71,7 @@ public final class DefaultMediaDescriptionAdapter implements MediaDescriptionAda
|
|||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public CharSequence getCurrentContentText(Player player) {
|
public CharSequence getCurrentContentText(Player player) {
|
||||||
if (!player.isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA)) {
|
if (!player.isCommandAvailable(COMMAND_GET_METADATA)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@Nullable CharSequence artist = player.getMediaMetadata().artist;
|
@Nullable CharSequence artist = player.getMediaMetadata().artist;
|
||||||
@ -85,7 +85,7 @@ public final class DefaultMediaDescriptionAdapter implements MediaDescriptionAda
|
|||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public Bitmap getCurrentLargeIcon(Player player, BitmapCallback callback) {
|
public Bitmap getCurrentLargeIcon(Player player, BitmapCallback callback) {
|
||||||
if (!player.isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA)) {
|
if (!player.isCommandAvailable(COMMAND_GET_METADATA)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@Nullable byte[] data = player.getMediaMetadata().artworkData;
|
@Nullable byte[] data = player.getMediaMetadata().artworkData;
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
package androidx.media3.ui;
|
package androidx.media3.ui;
|
||||||
|
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM;
|
import static androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA;
|
import static androidx.media3.common.Player.COMMAND_GET_METADATA;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_TEXT;
|
import static androidx.media3.common.Player.COMMAND_GET_TEXT;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_TIMELINE;
|
import static androidx.media3.common.Player.COMMAND_GET_TIMELINE;
|
||||||
import static androidx.media3.common.Player.COMMAND_GET_TRACKS;
|
import static androidx.media3.common.Player.COMMAND_GET_TRACKS;
|
||||||
@ -1382,7 +1382,7 @@ public class PlayerView extends FrameLayout implements AdViewProvider {
|
|||||||
|
|
||||||
@RequiresNonNull("artworkView")
|
@RequiresNonNull("artworkView")
|
||||||
private boolean setArtworkFromMediaMetadata(Player player) {
|
private boolean setArtworkFromMediaMetadata(Player player) {
|
||||||
if (!player.isCommandAvailable(COMMAND_GET_MEDIA_ITEMS_METADATA)) {
|
if (!player.isCommandAvailable(COMMAND_GET_METADATA)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
MediaMetadata mediaMetadata = player.getMediaMetadata();
|
MediaMetadata mediaMetadata = player.getMediaMetadata();
|
||||||
|
@ -43,7 +43,7 @@ public class DefaultMediaDescriptionAdapterTest {
|
|||||||
PendingIntent.getActivity(context, 0, new Intent(), PendingIntent.FLAG_IMMUTABLE);
|
PendingIntent.getActivity(context, 0, new Intent(), PendingIntent.FLAG_IMMUTABLE);
|
||||||
DefaultMediaDescriptionAdapter adapter = new DefaultMediaDescriptionAdapter(pendingIntent);
|
DefaultMediaDescriptionAdapter adapter = new DefaultMediaDescriptionAdapter(pendingIntent);
|
||||||
|
|
||||||
when(player.isCommandAvailable(Player.COMMAND_GET_MEDIA_ITEMS_METADATA)).thenReturn(true);
|
when(player.isCommandAvailable(Player.COMMAND_GET_METADATA)).thenReturn(true);
|
||||||
when(player.getMediaMetadata()).thenReturn(mediaMetadata);
|
when(player.getMediaMetadata()).thenReturn(mediaMetadata);
|
||||||
|
|
||||||
assertThat(adapter.createCurrentContentIntent(player)).isEqualTo(pendingIntent);
|
assertThat(adapter.createCurrentContentIntent(player)).isEqualTo(pendingIntent);
|
||||||
@ -63,7 +63,7 @@ public class DefaultMediaDescriptionAdapterTest {
|
|||||||
PendingIntent.getActivity(context, 0, new Intent(), PendingIntent.FLAG_IMMUTABLE);
|
PendingIntent.getActivity(context, 0, new Intent(), PendingIntent.FLAG_IMMUTABLE);
|
||||||
DefaultMediaDescriptionAdapter adapter = new DefaultMediaDescriptionAdapter(pendingIntent);
|
DefaultMediaDescriptionAdapter adapter = new DefaultMediaDescriptionAdapter(pendingIntent);
|
||||||
|
|
||||||
when(player.isCommandAvailable(Player.COMMAND_GET_MEDIA_ITEMS_METADATA)).thenReturn(false);
|
when(player.isCommandAvailable(Player.COMMAND_GET_METADATA)).thenReturn(false);
|
||||||
when(player.getMediaMetadata()).thenReturn(mediaMetadata);
|
when(player.getMediaMetadata()).thenReturn(mediaMetadata);
|
||||||
|
|
||||||
assertThat(adapter.createCurrentContentIntent(player)).isEqualTo(pendingIntent);
|
assertThat(adapter.createCurrentContentIntent(player)).isEqualTo(pendingIntent);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user