From c7f2df0fd9a02f9c144dc4a1fb628a5a47b46537 Mon Sep 17 00:00:00 2001 From: insun Date: Wed, 6 May 2020 23:45:19 +0100 Subject: [PATCH] Add Player#getTrackSelector() PiperOrigin-RevId: 310242733 --- RELEASENOTES.md | 1 + .../google/android/exoplayer2/ext/cast/CastPlayer.java | 7 +++++++ library/common/src/main/proguard-rules.txt | 1 - .../java/com/google/android/exoplayer2/ExoPlayerImpl.java | 6 ++++++ .../main/java/com/google/android/exoplayer2/Player.java | 8 +++++++- .../com/google/android/exoplayer2/SimpleExoPlayer.java | 7 +++++++ .../google/android/exoplayer2/testutil/StubExoPlayer.java | 7 +++++++ 7 files changed, 35 insertions(+), 2 deletions(-) delete mode 120000 library/common/src/main/proguard-rules.txt diff --git a/RELEASENOTES.md b/RELEASENOTES.md index c38cd08da9..683e2d3146 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -3,6 +3,7 @@ ### dev-v2 (not yet released) * Core library: + * Add `Player.getTrackSelector` to access track selector from UI module. * Added `TextComponent.getCurrentCues` because the current cues are no longer forwarded to a new `TextOutput` in `SimpleExoPlayer` automatically. 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 835d6a33fc..2137ff2d03 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 @@ -30,6 +30,7 @@ import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.trackselection.FixedTrackSelection; import com.google.android.exoplayer2.trackselection.TrackSelection; import com.google.android.exoplayer2.trackselection.TrackSelectionArray; +import com.google.android.exoplayer2.trackselection.TrackSelector; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Log; import com.google.android.exoplayer2.util.MimeTypes; @@ -513,6 +514,12 @@ public final class CastPlayer extends BasePlayer { } } + @Override + @Nullable + public TrackSelector getTrackSelector() { + throw new UnsupportedOperationException(); + } + @Override public void setRepeatMode(@RepeatMode int repeatMode) { if (remoteMediaClient == null) { diff --git a/library/common/src/main/proguard-rules.txt b/library/common/src/main/proguard-rules.txt deleted file mode 120000 index 499fb08b36..0000000000 --- a/library/common/src/main/proguard-rules.txt +++ /dev/null @@ -1 +0,0 @@ -../../proguard-rules.txt \ No newline at end of file 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 756a09dde3..543e72b2dd 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 @@ -820,6 +820,12 @@ import java.util.concurrent.TimeoutException; return renderers[index].getTrackType(); } + @Override + @Nullable + public TrackSelector getTrackSelector() { + return trackSelector; + } + @Override public TrackGroupArray getCurrentTrackGroups() { return playbackInfo.trackGroups; diff --git a/library/core/src/main/java/com/google/android/exoplayer2/Player.java b/library/core/src/main/java/com/google/android/exoplayer2/Player.java index b08b0336b5..08145e1d0b 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/Player.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/Player.java @@ -33,6 +33,7 @@ import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.text.Cue; import com.google.android.exoplayer2.text.TextOutput; import com.google.android.exoplayer2.trackselection.TrackSelectionArray; +import com.google.android.exoplayer2.trackselection.TrackSelector; import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.video.VideoDecoderOutputBufferRenderer; import com.google.android.exoplayer2.video.VideoFrameMetadataListener; @@ -1189,6 +1190,10 @@ public interface Player { */ int getRendererType(int index); + /** Returns the track selector that this player uses. */ + @Nullable + TrackSelector getTrackSelector(); + /** * Returns the available track groups. */ @@ -1202,7 +1207,8 @@ public interface Player { /** * Returns the current manifest. The type depends on the type of media being played. May be null. */ - @Nullable Object getCurrentManifest(); + @Nullable + Object getCurrentManifest(); /** * Returns the current {@link Timeline}. Never null, but may be empty. 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 844df27a6e..338df091b8 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 @@ -1557,6 +1557,13 @@ public class SimpleExoPlayer extends BasePlayer return player.getRendererType(index); } + @Override + @Nullable + public TrackSelector getTrackSelector() { + verifyApplicationThread(); + return player.getTrackSelector(); + } + @Override public TrackGroupArray getCurrentTrackGroups() { verifyApplicationThread(); 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 5337685be4..b4678cb7cf 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 @@ -30,6 +30,7 @@ import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.ShuffleOrder; import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.trackselection.TrackSelectionArray; +import com.google.android.exoplayer2.trackselection.TrackSelector; import java.util.List; /** @@ -374,6 +375,12 @@ public abstract class StubExoPlayer extends BasePlayer implements ExoPlayer { throw new UnsupportedOperationException(); } + @Override + @Nullable + public TrackSelector getTrackSelector() { + throw new UnsupportedOperationException(); + } + @Override public TrackGroupArray getCurrentTrackGroups() { throw new UnsupportedOperationException();