From 4f982763cf68af3ee7a4ad9f04e5391da47eaa65 Mon Sep 17 00:00:00 2001 From: bachinger Date: Fri, 11 Sep 2020 21:27:43 +0100 Subject: [PATCH] Add getMediaItemCount() and getMediaItemAt(int) PiperOrigin-RevId: 331211708 --- RELEASENOTES.md | 7 ++++--- .../java/com/google/android/exoplayer2/BasePlayer.java | 10 ++++++++++ .../java/com/google/android/exoplayer2/Player.java | 6 ++++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index eebd6d42ff..a4ae7bb05a 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,6 +1,6 @@ # Release notes -### 2.12.0 (2020-09-03) ### +### 2.12.0 (2020-09-11) ### * Core library: * `Player`: @@ -8,8 +8,9 @@ ([#6161](https://github.com/google/ExoPlayer/issues/6161)). The new methods for playlist manipulation are `setMediaItem(s)`, `addMediaItem(s)`, `moveMediaItem(s)`, `removeMediaItem(s)` and - `clearMediaItems`. This API should be used instead of - `ConcatenatingMediaSource` in most cases. + `clearMediaItems`. The playlist can be queried using + `getMediaItemCount` and `getMediaItemAt`. This API should be used + instead of `ConcatenatingMediaSource` in most cases. * Add `getCurrentMediaItem` for getting the currently playing item in the playlist. * Add `EventListener.onMediaItemTransition` to report when diff --git a/library/core/src/main/java/com/google/android/exoplayer2/BasePlayer.java b/library/core/src/main/java/com/google/android/exoplayer2/BasePlayer.java index 893c512bd7..9d7af2dce6 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/BasePlayer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/BasePlayer.java @@ -185,6 +185,16 @@ public abstract class BasePlayer implements Player { : timeline.getWindow(getCurrentWindowIndex(), window).mediaItem; } + @Override + public int getMediaItemCount() { + return getCurrentTimeline().getWindowCount(); + } + + @Override + public MediaItem getMediaItemAt(int index) { + return getCurrentTimeline().getWindow(index, window).mediaItem; + } + @Override @Nullable public final Object getCurrentManifest() { 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 9d9d9cdc2d..7a52aae738 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 @@ -1284,6 +1284,12 @@ public interface Player { @Nullable MediaItem getCurrentMediaItem(); + /** Returns the number of {@link MediaItem media items} in the playlist. */ + int getMediaItemCount(); + + /** Returns the {@link MediaItem} at the given index. */ + MediaItem getMediaItemAt(int index); + /** * Returns the duration of the current content window or ad in milliseconds, or {@link * C#TIME_UNSET} if the duration is not known.