mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Simplify re-creation of the CastPlayer queue in the Cast demo app
PiperOrigin-RevId: 251617354
This commit is contained in:
parent
2f8c8b609f
commit
f638634fe2
1 changed files with 1 additions and 7 deletions
|
|
@ -66,7 +66,6 @@ import java.util.ArrayList;
|
||||||
private final Listener listener;
|
private final Listener listener;
|
||||||
private final ConcatenatingMediaSource concatenatingMediaSource;
|
private final ConcatenatingMediaSource concatenatingMediaSource;
|
||||||
|
|
||||||
private boolean castMediaQueueCreationPending;
|
|
||||||
private int currentItemIndex;
|
private int currentItemIndex;
|
||||||
private Player currentPlayer;
|
private Player currentPlayer;
|
||||||
|
|
||||||
|
|
@ -268,9 +267,6 @@ import java.util.ArrayList;
|
||||||
public void onTimelineChanged(
|
public void onTimelineChanged(
|
||||||
Timeline timeline, @Nullable Object manifest, @TimelineChangeReason int reason) {
|
Timeline timeline, @Nullable Object manifest, @TimelineChangeReason int reason) {
|
||||||
updateCurrentItemIndex();
|
updateCurrentItemIndex();
|
||||||
if (currentPlayer == castPlayer && timeline.isEmpty()) {
|
|
||||||
castMediaQueueCreationPending = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// CastPlayer.SessionAvailabilityListener implementation.
|
// CastPlayer.SessionAvailabilityListener implementation.
|
||||||
|
|
@ -332,7 +328,6 @@ import java.util.ArrayList;
|
||||||
this.currentPlayer = currentPlayer;
|
this.currentPlayer = currentPlayer;
|
||||||
|
|
||||||
// Media queue management.
|
// Media queue management.
|
||||||
castMediaQueueCreationPending = currentPlayer == castPlayer;
|
|
||||||
if (currentPlayer == exoPlayer) {
|
if (currentPlayer == exoPlayer) {
|
||||||
exoPlayer.prepare(concatenatingMediaSource);
|
exoPlayer.prepare(concatenatingMediaSource);
|
||||||
}
|
}
|
||||||
|
|
@ -352,12 +347,11 @@ import java.util.ArrayList;
|
||||||
*/
|
*/
|
||||||
private void setCurrentItem(int itemIndex, long positionMs, boolean playWhenReady) {
|
private void setCurrentItem(int itemIndex, long positionMs, boolean playWhenReady) {
|
||||||
maybeSetCurrentItemAndNotify(itemIndex);
|
maybeSetCurrentItemAndNotify(itemIndex);
|
||||||
if (castMediaQueueCreationPending) {
|
if (currentPlayer == castPlayer && castPlayer.getCurrentTimeline().isEmpty()) {
|
||||||
MediaQueueItem[] items = new MediaQueueItem[mediaQueue.size()];
|
MediaQueueItem[] items = new MediaQueueItem[mediaQueue.size()];
|
||||||
for (int i = 0; i < items.length; i++) {
|
for (int i = 0; i < items.length; i++) {
|
||||||
items[i] = buildMediaQueueItem(mediaQueue.get(i));
|
items[i] = buildMediaQueueItem(mediaQueue.get(i));
|
||||||
}
|
}
|
||||||
castMediaQueueCreationPending = false;
|
|
||||||
castPlayer.loadItems(items, itemIndex, positionMs, Player.REPEAT_MODE_OFF);
|
castPlayer.loadItems(items, itemIndex, positionMs, Player.REPEAT_MODE_OFF);
|
||||||
} else {
|
} else {
|
||||||
currentPlayer.seekTo(itemIndex, positionMs);
|
currentPlayer.seekTo(itemIndex, positionMs);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue