diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 365efac3f2..79174fc756 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -54,6 +54,13 @@ * Implement `CastPlayer.setPlaybackParameters(PlaybackParameters)` to support setting the playback speed ([#6784](https://github.com/google/ExoPlayer/issues/6784)). + * Remove `Player.getCurrentStaticMetadata`, + `Player.Listener.onStaticMetadataChanged` and + `Player.EVENT_STATIC_METADATA_CHANGED`. Use `Player.getMediaMetadata`, + `Player.Listener.onMediaMetadataChanged` and + `Player.EVENT_MEDIA_METADATA_CHANGED` for convenient access to + structured metadata, or access the raw static metadata directly from + the `TrackSelection#getFormat()`. ### 2.15.0 (2021-08-10) diff --git a/docs/retrieving-metadata.md b/docs/retrieving-metadata.md index 44021b32b4..1b0339d8af 100644 --- a/docs/retrieving-metadata.md +++ b/docs/retrieving-metadata.md @@ -22,10 +22,10 @@ public void onMediaMetadataChanged(MediaMetadata mediaMetadata) { {: .language-java} If an application needs access to specific [`Metadata.Entry`][] objects, then it -should listen for `Player#onStaticMetadataChanged` (for static metadata from the -`Format`s) and/or add a `MetadataOutput` (for dynamic metadata delivered during -playback) to the player. The return values of these callbacks are used to -populate the `MediaMetadata`. +should add a `MetadataOutput` (for dynamic metadata delivered during +playback) to the player. Alternatively, if there is a need to look at static +metadata, this can be accessed through the `TrackSelections#getFormat`. Both of +these options are used to populate the `Player#getMediaMetadata`. ## Without playback ## diff --git a/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java b/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java index 3e3d1fac56..c8d6a4ba99 100644 --- a/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java +++ b/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java @@ -38,7 +38,6 @@ import com.google.android.exoplayer2.PlaybackParameters; import com.google.android.exoplayer2.Player; import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.audio.AudioAttributes; -import com.google.android.exoplayer2.metadata.Metadata; import com.google.android.exoplayer2.source.TrackGroup; import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.text.Cue; @@ -578,13 +577,6 @@ public final class CastPlayer extends BasePlayer { @Override public void setTrackSelectionParameters(TrackSelectionParameters parameters) {} - @Deprecated - @Override - public ImmutableList getCurrentStaticMetadata() { - // CastPlayer does not currently support metadata. - return ImmutableList.of(); - } - @Override public MediaMetadata getMediaMetadata() { // CastPlayer does not currently support metadata. diff --git a/library/common/src/main/java/com/google/android/exoplayer2/ForwardingPlayer.java b/library/common/src/main/java/com/google/android/exoplayer2/ForwardingPlayer.java index b0b9eff834..b1a7ae0405 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/ForwardingPlayer.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/ForwardingPlayer.java @@ -382,12 +382,6 @@ public class ForwardingPlayer implements Player { player.setTrackSelectionParameters(parameters); } - @Deprecated - @Override - public List getCurrentStaticMetadata() { - return player.getCurrentStaticMetadata(); - } - @Override public MediaMetadata getMediaMetadata() { return player.getMediaMetadata(); @@ -663,12 +657,6 @@ public class ForwardingPlayer implements Player { eventListener.onTracksChanged(trackGroups, trackSelections); } - @Deprecated - @Override - public void onStaticMetadataChanged(List metadataList) { - eventListener.onStaticMetadataChanged(metadataList); - } - @Override public void onMediaMetadataChanged(MediaMetadata mediaMetadata) { eventListener.onMediaMetadataChanged(mediaMetadata); diff --git a/library/common/src/main/java/com/google/android/exoplayer2/Player.java b/library/common/src/main/java/com/google/android/exoplayer2/Player.java index 8bf9fbdf20..9a213d5ee7 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/Player.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/Player.java @@ -126,15 +126,6 @@ public interface Player { default void onTracksChanged( TrackGroupArray trackGroups, TrackSelectionArray trackSelections) {} - /** - * @deprecated Use {@link Player#getMediaMetadata()} and {@link - * #onMediaMetadataChanged(MediaMetadata)} for access to structured metadata, or access the - * raw static metadata directly from the {@link TrackSelection#getFormat(int) track - * selections' formats}. - */ - @Deprecated - default void onStaticMetadataChanged(List metadataList) {} - /** * Called when the combined {@link MediaMetadata} changes. * @@ -1263,7 +1254,6 @@ public interface Player { EVENT_TIMELINE_CHANGED, EVENT_MEDIA_ITEM_TRANSITION, EVENT_TRACKS_CHANGED, - EVENT_STATIC_METADATA_CHANGED, EVENT_IS_LOADING_CHANGED, EVENT_PLAYBACK_STATE_CHANGED, EVENT_PLAY_WHEN_READY_CHANGED, @@ -1289,45 +1279,43 @@ public interface Player { int EVENT_MEDIA_ITEM_TRANSITION = 1; /** {@link #getCurrentTrackGroups()} or {@link #getCurrentTrackSelections()} changed. */ int EVENT_TRACKS_CHANGED = 2; - /** @deprecated Use {@link #EVENT_MEDIA_METADATA_CHANGED} for structured metadata changes. */ - @Deprecated int EVENT_STATIC_METADATA_CHANGED = 3; /** {@link #isLoading()} ()} changed. */ - int EVENT_IS_LOADING_CHANGED = 4; + int EVENT_IS_LOADING_CHANGED = 3; /** {@link #getPlaybackState()} changed. */ - int EVENT_PLAYBACK_STATE_CHANGED = 5; + int EVENT_PLAYBACK_STATE_CHANGED = 4; /** {@link #getPlayWhenReady()} changed. */ - int EVENT_PLAY_WHEN_READY_CHANGED = 6; + int EVENT_PLAY_WHEN_READY_CHANGED = 5; /** {@link #getPlaybackSuppressionReason()} changed. */ - int EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED = 7; + int EVENT_PLAYBACK_SUPPRESSION_REASON_CHANGED = 6; /** {@link #isPlaying()} changed. */ - int EVENT_IS_PLAYING_CHANGED = 8; + int EVENT_IS_PLAYING_CHANGED = 7; /** {@link #getRepeatMode()} changed. */ - int EVENT_REPEAT_MODE_CHANGED = 9; + int EVENT_REPEAT_MODE_CHANGED = 8; /** {@link #getShuffleModeEnabled()} changed. */ - int EVENT_SHUFFLE_MODE_ENABLED_CHANGED = 10; + int EVENT_SHUFFLE_MODE_ENABLED_CHANGED = 9; /** {@link #getPlayerError()} changed. */ - int EVENT_PLAYER_ERROR = 11; + int EVENT_PLAYER_ERROR = 10; /** * A position discontinuity occurred. See {@link Listener#onPositionDiscontinuity(PositionInfo, * PositionInfo, int)}. */ - int EVENT_POSITION_DISCONTINUITY = 12; + int EVENT_POSITION_DISCONTINUITY = 11; /** {@link #getPlaybackParameters()} changed. */ - int EVENT_PLAYBACK_PARAMETERS_CHANGED = 13; + int EVENT_PLAYBACK_PARAMETERS_CHANGED = 12; /** {@link #isCommandAvailable(int)} changed for at least one {@link Command}. */ - int EVENT_AVAILABLE_COMMANDS_CHANGED = 14; + int EVENT_AVAILABLE_COMMANDS_CHANGED = 13; /** {@link #getMediaMetadata()} changed. */ - int EVENT_MEDIA_METADATA_CHANGED = 15; + int EVENT_MEDIA_METADATA_CHANGED = 14; /** {@link #getPlaylistMetadata()} changed. */ - int EVENT_PLAYLIST_METADATA_CHANGED = 16; + int EVENT_PLAYLIST_METADATA_CHANGED = 15; /** {@link #getSeekBackIncrement()} changed. */ - int EVENT_SEEK_BACK_INCREMENT_CHANGED = 17; + int EVENT_SEEK_BACK_INCREMENT_CHANGED = 16; /** {@link #getSeekForwardIncrement()} changed. */ - int EVENT_SEEK_FORWARD_INCREMENT_CHANGED = 18; + int EVENT_SEEK_FORWARD_INCREMENT_CHANGED = 17; /** {@link #getMaxSeekToPreviousPosition()} changed. */ - int EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED = 19; + int EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED = 18; /** {@link #getTrackSelectionParameters()} changed. */ - int EVENT_TRACK_SELECTION_PARAMETERS_CHANGED = 20; + int EVENT_TRACK_SELECTION_PARAMETERS_CHANGED = 19; /** * Commands that can be executed on a {@code Player}. One of {@link #COMMAND_PLAY_PAUSE}, {@link @@ -2033,15 +2021,6 @@ public interface Player { */ void setTrackSelectionParameters(TrackSelectionParameters parameters); - /** - * @deprecated Use {@link #getMediaMetadata()} and {@link - * Listener#onMediaMetadataChanged(MediaMetadata)} for access to structured metadata, or - * access the raw static metadata directly from the {@link TrackSelection#getFormat(int) track - * selections' formats}. - */ - @Deprecated - List getCurrentStaticMetadata(); - /** * Returns the current combined {@link MediaMetadata}, or {@link MediaMetadata#EMPTY} if not * supported. diff --git a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java index 8863c9259f..8933b388e9 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java @@ -947,12 +947,6 @@ import java.util.concurrent.CopyOnWriteArraySet; return new TrackSelectionArray(playbackInfo.trackSelectorResult.selections); } - @Deprecated - @Override - public List getCurrentStaticMetadata() { - return playbackInfo.staticMetadata; - } - @Override public TrackSelectionParameters getTrackSelectionParameters() { return trackSelector.getParameters(); @@ -1276,11 +1270,6 @@ import java.util.concurrent.CopyOnWriteArraySet; Player.EVENT_TRACKS_CHANGED, listener -> listener.onTracksChanged(newPlaybackInfo.trackGroups, newSelection)); } - if (!previousPlaybackInfo.staticMetadata.equals(newPlaybackInfo.staticMetadata)) { - listeners.queueEvent( - Player.EVENT_STATIC_METADATA_CHANGED, - listener -> listener.onStaticMetadataChanged(newPlaybackInfo.staticMetadata)); - } if (metadataChanged) { final MediaMetadata finalMediaMetadata = mediaMetadata; listeners.queueEvent( diff --git a/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java b/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java index f5c122e7a3..53fdb9c33b 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java @@ -1462,13 +1462,6 @@ public class SimpleExoPlayer extends BasePlayer player.setTrackSelectionParameters(parameters); } - @Deprecated - @Override - public List getCurrentStaticMetadata() { - verifyApplicationThread(); - return player.getCurrentStaticMetadata(); - } - @Override public MediaMetadata getMediaMetadata() { return player.getMediaMetadata(); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java b/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java index 77d77603e3..6aaf008262 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java @@ -602,16 +602,6 @@ public class AnalyticsCollector listener -> listener.onTracksChanged(eventTime, trackGroups, trackSelections)); } - @Deprecated - @Override - public final void onStaticMetadataChanged(List metadataList) { - EventTime eventTime = generateCurrentPlayerMediaPeriodEventTime(); - sendEvent( - eventTime, - AnalyticsListener.EVENT_STATIC_METADATA_CHANGED, - listener -> listener.onStaticMetadataChanged(eventTime, metadataList)); - } - @SuppressWarnings("deprecation") // Calling deprecated listener method. @Override public final void onIsLoadingChanged(boolean isLoading) { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsListener.java b/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsListener.java index 24dce074e1..0fca47cf56 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsListener.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsListener.java @@ -58,7 +58,6 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; -import java.util.List; /** * A listener for analytics events. @@ -159,7 +158,6 @@ public interface AnalyticsListener { EVENT_TIMELINE_CHANGED, EVENT_MEDIA_ITEM_TRANSITION, EVENT_TRACKS_CHANGED, - EVENT_STATIC_METADATA_CHANGED, EVENT_IS_LOADING_CHANGED, EVENT_PLAYBACK_STATE_CHANGED, EVENT_PLAY_WHEN_READY_CHANGED, @@ -226,8 +224,6 @@ public interface AnalyticsListener { * {@link Player#getCurrentTrackGroups()} or {@link Player#getCurrentTrackSelections()} changed. */ int EVENT_TRACKS_CHANGED = Player.EVENT_TRACKS_CHANGED; - /** @deprecated See {@link Player#EVENT_MEDIA_METADATA_CHANGED}. */ - @Deprecated int EVENT_STATIC_METADATA_CHANGED = Player.EVENT_STATIC_METADATA_CHANGED; /** {@link Player#isLoading()} ()} changed. */ int EVENT_IS_LOADING_CHANGED = Player.EVENT_IS_LOADING_CHANGED; /** {@link Player#getPlaybackState()} changed. */ @@ -682,14 +678,6 @@ public interface AnalyticsListener { default void onTracksChanged( EventTime eventTime, TrackGroupArray trackGroups, TrackSelectionArray trackSelections) {} - /** - * @deprecated Use {@link Player#getMediaMetadata()} and {@link #onMediaMetadataChanged(EventTime, - * MediaMetadata)} for access to structured metadata, or access the raw static metadata - * directly from the {@link TrackSelection#getFormat(int) track selections' formats}. - */ - @Deprecated - default void onStaticMetadataChanged(EventTime eventTime, List metadataList) {} - /** * Called when the combined {@link MediaMetadata} changes. * diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java index beac8467b6..9e866a3d9a 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java @@ -34,7 +34,6 @@ import com.google.android.exoplayer2.SeekParameters; import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.audio.AudioAttributes; import com.google.android.exoplayer2.audio.AuxEffectInfo; -import com.google.android.exoplayer2.metadata.Metadata; import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.ShuffleOrder; import com.google.android.exoplayer2.source.TrackGroupArray; @@ -463,12 +462,6 @@ public class StubExoPlayer extends BasePlayer implements ExoPlayer { throw new UnsupportedOperationException(); } - @Deprecated - @Override - public List getCurrentStaticMetadata() { - throw new UnsupportedOperationException(); - } - @Override public MediaMetadata getMediaMetadata() { throw new UnsupportedOperationException();