Support setting the max seek to previous position on CastPlayer
This commit is contained in:
parent
6153b6d740
commit
424d2a52fe
@ -124,6 +124,7 @@ public final class CastPlayer extends BasePlayer {
|
|||||||
private final MediaItemConverter mediaItemConverter;
|
private final MediaItemConverter mediaItemConverter;
|
||||||
private final long seekBackIncrementMs;
|
private final long seekBackIncrementMs;
|
||||||
private final long seekForwardIncrementMs;
|
private final long seekForwardIncrementMs;
|
||||||
|
private final long maxSeekToPreviousPositionMs;
|
||||||
// TODO: Allow custom implementations of CastTimelineTracker.
|
// TODO: Allow custom implementations of CastTimelineTracker.
|
||||||
private final CastTimelineTracker timelineTracker;
|
private final CastTimelineTracker timelineTracker;
|
||||||
private final Timeline.Period period;
|
private final Timeline.Period period;
|
||||||
@ -200,11 +201,40 @@ public final class CastPlayer extends BasePlayer {
|
|||||||
MediaItemConverter mediaItemConverter,
|
MediaItemConverter mediaItemConverter,
|
||||||
@IntRange(from = 1) long seekBackIncrementMs,
|
@IntRange(from = 1) long seekBackIncrementMs,
|
||||||
@IntRange(from = 1) long seekForwardIncrementMs) {
|
@IntRange(from = 1) long seekForwardIncrementMs) {
|
||||||
|
this(
|
||||||
|
castContext,
|
||||||
|
mediaItemConverter,
|
||||||
|
seekBackIncrementMs,
|
||||||
|
seekForwardIncrementMs,
|
||||||
|
C.DEFAULT_MAX_SEEK_TO_PREVIOUS_POSITION_MS);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new cast player.
|
||||||
|
*
|
||||||
|
* @param castContext The context from which the cast session is obtained.
|
||||||
|
* @param mediaItemConverter The {@link MediaItemConverter} to use.
|
||||||
|
* @param seekBackIncrementMs The {@link #seekBack()} increment, in milliseconds.
|
||||||
|
* @param seekForwardIncrementMs The {@link #seekForward()} increment, in milliseconds.
|
||||||
|
* @param maxSeekToPreviousPositionMs The maximum position for which {@link #seekToPrevious()}
|
||||||
|
* seeks to the previous {@link MediaItem}, in milliseconds.
|
||||||
|
* @throws IllegalArgumentException If {@code seekBackIncrementMs} or {@code
|
||||||
|
* seekForwardIncrementMs} is non-positive, or if {@code maxSeekToPreviousPositionMs} is
|
||||||
|
* negative.
|
||||||
|
*/
|
||||||
|
public CastPlayer(
|
||||||
|
CastContext castContext,
|
||||||
|
MediaItemConverter mediaItemConverter,
|
||||||
|
@IntRange(from = 1) long seekBackIncrementMs,
|
||||||
|
@IntRange(from = 1) long seekForwardIncrementMs,
|
||||||
|
@IntRange(from = 0) long maxSeekToPreviousPositionMs) {
|
||||||
checkArgument(seekBackIncrementMs > 0 && seekForwardIncrementMs > 0);
|
checkArgument(seekBackIncrementMs > 0 && seekForwardIncrementMs > 0);
|
||||||
|
checkArgument(maxSeekToPreviousPositionMs >= 0L);
|
||||||
this.castContext = castContext;
|
this.castContext = castContext;
|
||||||
this.mediaItemConverter = mediaItemConverter;
|
this.mediaItemConverter = mediaItemConverter;
|
||||||
this.seekBackIncrementMs = seekBackIncrementMs;
|
this.seekBackIncrementMs = seekBackIncrementMs;
|
||||||
this.seekForwardIncrementMs = seekForwardIncrementMs;
|
this.seekForwardIncrementMs = seekForwardIncrementMs;
|
||||||
|
this.maxSeekToPreviousPositionMs = maxSeekToPreviousPositionMs;
|
||||||
timelineTracker = new CastTimelineTracker(mediaItemConverter);
|
timelineTracker = new CastTimelineTracker(mediaItemConverter);
|
||||||
period = new Timeline.Period();
|
period = new Timeline.Period();
|
||||||
statusListener = new StatusListener();
|
statusListener = new StatusListener();
|
||||||
@ -481,7 +511,7 @@ public final class CastPlayer extends BasePlayer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getMaxSeekToPreviousPosition() {
|
public long getMaxSeekToPreviousPosition() {
|
||||||
return C.DEFAULT_MAX_SEEK_TO_PREVIOUS_POSITION_MS;
|
return maxSeekToPreviousPositionMs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user