Commit bc0f3935 by kimvde Committed by Oliver Woodman

Re-order seekBack and seekForward in Player

This is more consistent with other Player methods like previous and
next.

PiperOrigin-RevId: 383832298
parent 699579fd
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
* Core Library: * Core Library:
* Add `needsReconfiguration` API to the `MediaCodecAdapter` interface. * Add `needsReconfiguration` API to the `MediaCodecAdapter` interface.
* Add `getSeekForwardIncrement`, `seekForward`, `getSeekBackIncrement` * Add `getSeekBackIncrement`, `seekBack`, `getSeekForwardIncrement` and
and `seekBack` methods to `Player`. `seekForward` methods to `Player`.
* Add `getMaxSeekToPreviousPosition`, `seekToPrevious` and `seekToNext` * Add `getMaxSeekToPreviousPosition`, `seekToPrevious` and `seekToNext`
methods to `Player`. methods to `Player`.
* Rename `Player` commands `COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM`, * Rename `Player` commands `COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM`,
......
...@@ -115,8 +115,8 @@ public final class CastPlayer extends BasePlayer { ...@@ -115,8 +115,8 @@ public final class CastPlayer extends BasePlayer {
private final CastContext castContext; private final CastContext castContext;
private final MediaItemConverter mediaItemConverter; private final MediaItemConverter mediaItemConverter;
private final long seekForwardIncrementMs;
private final long seekBackIncrementMs; private final long seekBackIncrementMs;
private final long seekForwardIncrementMs;
// 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;
...@@ -151,8 +151,8 @@ public final class CastPlayer extends BasePlayer { ...@@ -151,8 +151,8 @@ public final class CastPlayer extends BasePlayer {
* <p>The returned player uses a {@link DefaultMediaItemConverter} and * <p>The returned player uses a {@link DefaultMediaItemConverter} and
* *
* <p>{@code mediaItemConverter} is set to a {@link DefaultMediaItemConverter}, {@code * <p>{@code mediaItemConverter} is set to a {@link DefaultMediaItemConverter}, {@code
* seekForwardIncrementMs} is set to {@link C#DEFAULT_SEEK_FORWARD_INCREMENT_MS} and {@code * seekBackIncrementMs} is set to {@link C#DEFAULT_SEEK_BACK_INCREMENT_MS} and {@code
* seekBackIncrementMs} is set to {@link C#DEFAULT_SEEK_BACK_INCREMENT_MS}. * seekForwardIncrementMs} is set to {@link C#DEFAULT_SEEK_FORWARD_INCREMENT_MS}.
* *
* @param castContext The context from which the cast session is obtained. * @param castContext The context from which the cast session is obtained.
*/ */
...@@ -163,8 +163,8 @@ public final class CastPlayer extends BasePlayer { ...@@ -163,8 +163,8 @@ public final class CastPlayer extends BasePlayer {
/** /**
* Creates a new cast player. * Creates a new cast player.
* *
* <p>{@code seekForwardIncrementMs} is set to {@link C#DEFAULT_SEEK_FORWARD_INCREMENT_MS} and * <p>{@code seekBackIncrementMs} is set to {@link C#DEFAULT_SEEK_BACK_INCREMENT_MS} and {@code
* {@code seekBackIncrementMs} is set to {@link C#DEFAULT_SEEK_BACK_INCREMENT_MS}. * seekForwardIncrementMs} is set to {@link C#DEFAULT_SEEK_FORWARD_INCREMENT_MS}.
* *
* @param castContext The context from which the cast session is obtained. * @param castContext The context from which the cast session is obtained.
* @param mediaItemConverter The {@link MediaItemConverter} to use. * @param mediaItemConverter The {@link MediaItemConverter} to use.
...@@ -173,8 +173,8 @@ public final class CastPlayer extends BasePlayer { ...@@ -173,8 +173,8 @@ public final class CastPlayer extends BasePlayer {
this( this(
castContext, castContext,
mediaItemConverter, mediaItemConverter,
C.DEFAULT_SEEK_FORWARD_INCREMENT_MS, C.DEFAULT_SEEK_BACK_INCREMENT_MS,
C.DEFAULT_SEEK_BACK_INCREMENT_MS); C.DEFAULT_SEEK_FORWARD_INCREMENT_MS);
} }
/** /**
...@@ -182,21 +182,21 @@ public final class CastPlayer extends BasePlayer { ...@@ -182,21 +182,21 @@ public final class CastPlayer extends BasePlayer {
* *
* @param castContext The context from which the cast session is obtained. * @param castContext The context from which the cast session is obtained.
* @param mediaItemConverter The {@link MediaItemConverter} to use. * @param mediaItemConverter The {@link MediaItemConverter} to use.
* @param seekForwardIncrementMs The {@link #seekForward()} increment, in milliseconds.
* @param seekBackIncrementMs The {@link #seekBack()} increment, in milliseconds. * @param seekBackIncrementMs The {@link #seekBack()} increment, in milliseconds.
* @throws IllegalArgumentException If {@code seekForwardIncrementMs} or {@code * @param seekForwardIncrementMs The {@link #seekForward()} increment, in milliseconds.
* seekBackIncrementMs} is non-positive. * @throws IllegalArgumentException If {@code seekBackIncrementMs} or {@code
* seekForwardIncrementMs} is non-positive.
*/ */
public CastPlayer( public CastPlayer(
CastContext castContext, CastContext castContext,
MediaItemConverter mediaItemConverter, MediaItemConverter mediaItemConverter,
long seekForwardIncrementMs, long seekBackIncrementMs,
long seekBackIncrementMs) { long seekForwardIncrementMs) {
checkArgument(seekForwardIncrementMs > 0 && seekBackIncrementMs > 0); checkArgument(seekBackIncrementMs > 0 && seekForwardIncrementMs > 0);
this.castContext = castContext; this.castContext = castContext;
this.mediaItemConverter = mediaItemConverter; this.mediaItemConverter = mediaItemConverter;
this.seekForwardIncrementMs = seekForwardIncrementMs;
this.seekBackIncrementMs = seekBackIncrementMs; this.seekBackIncrementMs = seekBackIncrementMs;
this.seekForwardIncrementMs = seekForwardIncrementMs;
timelineTracker = new CastTimelineTracker(); timelineTracker = new CastTimelineTracker();
period = new Timeline.Period(); period = new Timeline.Period();
statusListener = new StatusListener(); statusListener = new StatusListener();
...@@ -449,13 +449,13 @@ public final class CastPlayer extends BasePlayer { ...@@ -449,13 +449,13 @@ public final class CastPlayer extends BasePlayer {
} }
@Override @Override
public long getSeekForwardIncrement() { public long getSeekBackIncrement() {
return seekForwardIncrementMs; return seekBackIncrementMs;
} }
@Override @Override
public long getSeekBackIncrement() { public long getSeekForwardIncrement() {
return seekBackIncrementMs; return seekForwardIncrementMs;
} }
@Override @Override
......
...@@ -1104,19 +1104,19 @@ public class CastPlayerTest { ...@@ -1104,19 +1104,19 @@ public class CastPlayerTest {
@Test @Test
@SuppressWarnings("deprecation") // Mocks deprecated method used by the CastPlayer. @SuppressWarnings("deprecation") // Mocks deprecated method used by the CastPlayer.
public void seekForward_notifiesPositionDiscontinuity() { public void seekBack_notifiesPositionDiscontinuity() {
when(mockRemoteMediaClient.seek(anyLong())).thenReturn(mockPendingResult); when(mockRemoteMediaClient.seek(anyLong())).thenReturn(mockPendingResult);
int[] mediaQueueItemIds = new int[] {1}; int[] mediaQueueItemIds = new int[] {1};
List<MediaItem> mediaItems = createMediaItems(mediaQueueItemIds); List<MediaItem> mediaItems = createMediaItems(mediaQueueItemIds);
int currentItemId = 1; int currentItemId = 1;
int[] streamTypes = new int[] {MediaInfo.STREAM_TYPE_BUFFERED}; int[] streamTypes = new int[] {MediaInfo.STREAM_TYPE_BUFFERED};
long[] durationsMs = new long[] {2 * C.DEFAULT_SEEK_FORWARD_INCREMENT_MS}; long[] durationsMs = new long[] {3 * C.DEFAULT_SEEK_BACK_INCREMENT_MS};
long positionMs = 0; long positionMs = 2 * C.DEFAULT_SEEK_BACK_INCREMENT_MS;
castPlayer.addMediaItems(mediaItems); castPlayer.addMediaItems(mediaItems);
updateTimeLine( updateTimeLine(
mediaItems, mediaQueueItemIds, currentItemId, streamTypes, durationsMs, positionMs); mediaItems, mediaQueueItemIds, currentItemId, streamTypes, durationsMs, positionMs);
castPlayer.seekForward(); castPlayer.seekBack();
Player.PositionInfo oldPosition = Player.PositionInfo oldPosition =
new Player.PositionInfo( new Player.PositionInfo(
...@@ -1124,8 +1124,8 @@ public class CastPlayerTest { ...@@ -1124,8 +1124,8 @@ public class CastPlayerTest {
/* windowIndex= */ 0, /* windowIndex= */ 0,
/* periodUid= */ 1, /* periodUid= */ 1,
/* periodIndex= */ 0, /* periodIndex= */ 0,
/* positionMs= */ 0, /* positionMs= */ 2 * C.DEFAULT_SEEK_BACK_INCREMENT_MS,
/* contentPositionMs= */ 0, /* contentPositionMs= */ 2 * C.DEFAULT_SEEK_BACK_INCREMENT_MS,
/* adGroupIndex= */ C.INDEX_UNSET, /* adGroupIndex= */ C.INDEX_UNSET,
/* adIndexInAdGroup= */ C.INDEX_UNSET); /* adIndexInAdGroup= */ C.INDEX_UNSET);
Player.PositionInfo newPosition = Player.PositionInfo newPosition =
...@@ -1134,8 +1134,8 @@ public class CastPlayerTest { ...@@ -1134,8 +1134,8 @@ public class CastPlayerTest {
/* windowIndex= */ 0, /* windowIndex= */ 0,
/* periodUid= */ 1, /* periodUid= */ 1,
/* periodIndex= */ 0, /* periodIndex= */ 0,
/* positionMs= */ C.DEFAULT_SEEK_FORWARD_INCREMENT_MS, /* positionMs= */ C.DEFAULT_SEEK_BACK_INCREMENT_MS,
/* contentPositionMs= */ C.DEFAULT_SEEK_FORWARD_INCREMENT_MS, /* contentPositionMs= */ C.DEFAULT_SEEK_BACK_INCREMENT_MS,
/* adGroupIndex= */ C.INDEX_UNSET, /* adGroupIndex= */ C.INDEX_UNSET,
/* adIndexInAdGroup= */ C.INDEX_UNSET); /* adIndexInAdGroup= */ C.INDEX_UNSET);
InOrder inOrder = Mockito.inOrder(mockListener); InOrder inOrder = Mockito.inOrder(mockListener);
...@@ -1150,19 +1150,19 @@ public class CastPlayerTest { ...@@ -1150,19 +1150,19 @@ public class CastPlayerTest {
@Test @Test
@SuppressWarnings("deprecation") // Mocks deprecated method used by the CastPlayer. @SuppressWarnings("deprecation") // Mocks deprecated method used by the CastPlayer.
public void seekBack_notifiesPositionDiscontinuity() { public void seekForward_notifiesPositionDiscontinuity() {
when(mockRemoteMediaClient.seek(anyLong())).thenReturn(mockPendingResult); when(mockRemoteMediaClient.seek(anyLong())).thenReturn(mockPendingResult);
int[] mediaQueueItemIds = new int[] {1}; int[] mediaQueueItemIds = new int[] {1};
List<MediaItem> mediaItems = createMediaItems(mediaQueueItemIds); List<MediaItem> mediaItems = createMediaItems(mediaQueueItemIds);
int currentItemId = 1; int currentItemId = 1;
int[] streamTypes = new int[] {MediaInfo.STREAM_TYPE_BUFFERED}; int[] streamTypes = new int[] {MediaInfo.STREAM_TYPE_BUFFERED};
long[] durationsMs = new long[] {3 * C.DEFAULT_SEEK_BACK_INCREMENT_MS}; long[] durationsMs = new long[] {2 * C.DEFAULT_SEEK_FORWARD_INCREMENT_MS};
long positionMs = 2 * C.DEFAULT_SEEK_BACK_INCREMENT_MS; long positionMs = 0;
castPlayer.addMediaItems(mediaItems); castPlayer.addMediaItems(mediaItems);
updateTimeLine( updateTimeLine(
mediaItems, mediaQueueItemIds, currentItemId, streamTypes, durationsMs, positionMs); mediaItems, mediaQueueItemIds, currentItemId, streamTypes, durationsMs, positionMs);
castPlayer.seekBack(); castPlayer.seekForward();
Player.PositionInfo oldPosition = Player.PositionInfo oldPosition =
new Player.PositionInfo( new Player.PositionInfo(
...@@ -1170,8 +1170,8 @@ public class CastPlayerTest { ...@@ -1170,8 +1170,8 @@ public class CastPlayerTest {
/* windowIndex= */ 0, /* windowIndex= */ 0,
/* periodUid= */ 1, /* periodUid= */ 1,
/* periodIndex= */ 0, /* periodIndex= */ 0,
/* positionMs= */ 2 * C.DEFAULT_SEEK_BACK_INCREMENT_MS, /* positionMs= */ 0,
/* contentPositionMs= */ 2 * C.DEFAULT_SEEK_BACK_INCREMENT_MS, /* contentPositionMs= */ 0,
/* adGroupIndex= */ C.INDEX_UNSET, /* adGroupIndex= */ C.INDEX_UNSET,
/* adIndexInAdGroup= */ C.INDEX_UNSET); /* adIndexInAdGroup= */ C.INDEX_UNSET);
Player.PositionInfo newPosition = Player.PositionInfo newPosition =
...@@ -1180,8 +1180,8 @@ public class CastPlayerTest { ...@@ -1180,8 +1180,8 @@ public class CastPlayerTest {
/* windowIndex= */ 0, /* windowIndex= */ 0,
/* periodUid= */ 1, /* periodUid= */ 1,
/* periodIndex= */ 0, /* periodIndex= */ 0,
/* positionMs= */ C.DEFAULT_SEEK_BACK_INCREMENT_MS, /* positionMs= */ C.DEFAULT_SEEK_FORWARD_INCREMENT_MS,
/* contentPositionMs= */ C.DEFAULT_SEEK_BACK_INCREMENT_MS, /* contentPositionMs= */ C.DEFAULT_SEEK_FORWARD_INCREMENT_MS,
/* adGroupIndex= */ C.INDEX_UNSET, /* adGroupIndex= */ C.INDEX_UNSET,
/* adIndexInAdGroup= */ C.INDEX_UNSET); /* adIndexInAdGroup= */ C.INDEX_UNSET);
InOrder inOrder = Mockito.inOrder(mockListener); InOrder inOrder = Mockito.inOrder(mockListener);
...@@ -1209,8 +1209,8 @@ public class CastPlayerTest { ...@@ -1209,8 +1209,8 @@ public class CastPlayerTest {
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_TO_NEXT_WINDOW)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_TO_NEXT_WINDOW)).isTrue();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS_WINDOW)).isFalse(); assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS_WINDOW)).isFalse();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_TO_WINDOW)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_TO_WINDOW)).isTrue();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_FORWARD)).isTrue();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_BACK)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_BACK)).isTrue();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_FORWARD)).isTrue();
assertThat(castPlayer.isCommandAvailable(COMMAND_SET_SPEED_AND_PITCH)).isFalse(); assertThat(castPlayer.isCommandAvailable(COMMAND_SET_SPEED_AND_PITCH)).isFalse();
assertThat(castPlayer.isCommandAvailable(COMMAND_SET_SHUFFLE_MODE)).isFalse(); assertThat(castPlayer.isCommandAvailable(COMMAND_SET_SHUFFLE_MODE)).isFalse();
assertThat(castPlayer.isCommandAvailable(COMMAND_SET_REPEAT_MODE)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_SET_REPEAT_MODE)).isTrue();
...@@ -1247,8 +1247,8 @@ public class CastPlayerTest { ...@@ -1247,8 +1247,8 @@ public class CastPlayerTest {
/* positionMs= */ C.TIME_UNSET); /* positionMs= */ C.TIME_UNSET);
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_WINDOW)).isFalse(); assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_WINDOW)).isFalse();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_FORWARD)).isFalse();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_BACK)).isFalse(); assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_BACK)).isFalse();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_FORWARD)).isFalse();
} }
@Test @Test
...@@ -1661,8 +1661,8 @@ public class CastPlayerTest { ...@@ -1661,8 +1661,8 @@ public class CastPlayerTest {
Player.Commands.Builder builder = new Player.Commands.Builder(); Player.Commands.Builder builder = new Player.Commands.Builder();
builder.addAll(CastPlayer.PERMANENT_AVAILABLE_COMMANDS); builder.addAll(CastPlayer.PERMANENT_AVAILABLE_COMMANDS);
builder.add(COMMAND_SEEK_IN_CURRENT_WINDOW); builder.add(COMMAND_SEEK_IN_CURRENT_WINDOW);
builder.add(COMMAND_SEEK_FORWARD);
builder.add(COMMAND_SEEK_BACK); builder.add(COMMAND_SEEK_BACK);
builder.add(COMMAND_SEEK_FORWARD);
builder.addAll(additionalCommands); builder.addAll(additionalCommands);
return builder.build(); return builder.build();
} }
......
...@@ -122,13 +122,13 @@ public abstract class BasePlayer implements Player { ...@@ -122,13 +122,13 @@ public abstract class BasePlayer implements Player {
} }
@Override @Override
public final void seekForward() { public final void seekBack() {
seekToOffset(getSeekForwardIncrement()); seekToOffset(-getSeekBackIncrement());
} }
@Override @Override
public final void seekBack() { public final void seekForward() {
seekToOffset(-getSeekBackIncrement()); seekToOffset(getSeekForwardIncrement());
} }
@Override @Override
...@@ -298,8 +298,8 @@ public abstract class BasePlayer implements Player { ...@@ -298,8 +298,8 @@ public abstract class BasePlayer implements Player {
.addIf(COMMAND_SEEK_TO_NEXT_WINDOW, hasNext() && !isPlayingAd()) .addIf(COMMAND_SEEK_TO_NEXT_WINDOW, hasNext() && !isPlayingAd())
.addIf(COMMAND_SEEK_TO_PREVIOUS_WINDOW, hasPrevious() && !isPlayingAd()) .addIf(COMMAND_SEEK_TO_PREVIOUS_WINDOW, hasPrevious() && !isPlayingAd())
.addIf(COMMAND_SEEK_TO_WINDOW, !isPlayingAd()) .addIf(COMMAND_SEEK_TO_WINDOW, !isPlayingAd())
.addIf(COMMAND_SEEK_FORWARD, isCurrentWindowSeekable() && !isPlayingAd())
.addIf(COMMAND_SEEK_BACK, isCurrentWindowSeekable() && !isPlayingAd()) .addIf(COMMAND_SEEK_BACK, isCurrentWindowSeekable() && !isPlayingAd())
.addIf(COMMAND_SEEK_FORWARD, isCurrentWindowSeekable() && !isPlayingAd())
.build(); .build();
} }
......
...@@ -646,10 +646,10 @@ public final class C { ...@@ -646,10 +646,10 @@ public final class C {
/** A default size in bytes for an individual allocation that forms part of a larger buffer. */ /** A default size in bytes for an individual allocation that forms part of a larger buffer. */
public static final int DEFAULT_BUFFER_SEGMENT_SIZE = 64 * 1024; public static final int DEFAULT_BUFFER_SEGMENT_SIZE = 64 * 1024;
/** A default seek forward increment, in milliseconds. */
public static final long DEFAULT_SEEK_FORWARD_INCREMENT_MS = 15_000;
/** A default seek back increment, in milliseconds. */ /** A default seek back increment, in milliseconds. */
public static final long DEFAULT_SEEK_BACK_INCREMENT_MS = 5000; public static final long DEFAULT_SEEK_BACK_INCREMENT_MS = 5000;
/** A default seek forward increment, in milliseconds. */
public static final long DEFAULT_SEEK_FORWARD_INCREMENT_MS = 15_000;
/** /**
* A default maximum position for which a seek to previous will seek to the previous window, in * A default maximum position for which a seek to previous will seek to the previous window, in
......
...@@ -248,23 +248,23 @@ public class ForwardingPlayer implements Player { ...@@ -248,23 +248,23 @@ public class ForwardingPlayer implements Player {
} }
@Override @Override
public long getSeekForwardIncrement() { public long getSeekBackIncrement() {
return player.getSeekForwardIncrement(); return player.getSeekBackIncrement();
} }
@Override @Override
public void seekForward() { public void seekBack() {
player.seekForward(); player.seekBack();
} }
@Override @Override
public long getSeekBackIncrement() { public long getSeekForwardIncrement() {
return player.getSeekBackIncrement(); return player.getSeekForwardIncrement();
} }
@Override @Override
public void seekBack() { public void seekForward() {
player.seekBack(); player.seekForward();
} }
@Override @Override
...@@ -712,13 +712,13 @@ public class ForwardingPlayer implements Player { ...@@ -712,13 +712,13 @@ public class ForwardingPlayer implements Player {
} }
@Override @Override
public void onSeekForwardIncrementChanged(long seekForwardIncrementMs) { public void onSeekBackIncrementChanged(long seekBackIncrementMs) {
eventListener.onSeekForwardIncrementChanged(seekForwardIncrementMs); eventListener.onSeekBackIncrementChanged(seekBackIncrementMs);
} }
@Override @Override
public void onSeekBackIncrementChanged(long seekBackIncrementMs) { public void onSeekForwardIncrementChanged(long seekForwardIncrementMs) {
eventListener.onSeekBackIncrementChanged(seekBackIncrementMs); eventListener.onSeekForwardIncrementChanged(seekForwardIncrementMs);
} }
@Override @Override
......
...@@ -323,24 +323,24 @@ public interface Player { ...@@ -323,24 +323,24 @@ public interface Player {
default void onPlaybackParametersChanged(PlaybackParameters playbackParameters) {} default void onPlaybackParametersChanged(PlaybackParameters playbackParameters) {}
/** /**
* Called when the value of {@link #getSeekForwardIncrement()} changes. * Called when the value of {@link #getSeekBackIncrement()} changes.
* *
* <p>{@link #onEvents(Player, Events)} will also be called to report this event along with * <p>{@link #onEvents(Player, Events)} will also be called to report this event along with
* other events that happen in the same {@link Looper} message queue iteration. * other events that happen in the same {@link Looper} message queue iteration.
* *
* @param seekForwardIncrementMs The {@link #seekForward()} increment, in milliseconds. * @param seekBackIncrementMs The {@link #seekBack()} increment, in milliseconds.
*/ */
default void onSeekForwardIncrementChanged(long seekForwardIncrementMs) {} default void onSeekBackIncrementChanged(long seekBackIncrementMs) {}
/** /**
* Called when the value of {@link #getSeekBackIncrement()} changes. * Called when the value of {@link #getSeekForwardIncrement()} changes.
* *
* <p>{@link #onEvents(Player, Events)} will also be called to report this event along with * <p>{@link #onEvents(Player, Events)} will also be called to report this event along with
* other events that happen in the same {@link Looper} message queue iteration. * other events that happen in the same {@link Looper} message queue iteration.
* *
* @param seekBackIncrementMs The {@link #seekBack()} increment, in milliseconds. * @param seekForwardIncrementMs The {@link #seekForward()} increment, in milliseconds.
*/ */
default void onSeekBackIncrementChanged(long seekBackIncrementMs) {} default void onSeekForwardIncrementChanged(long seekForwardIncrementMs) {}
/** /**
* Called when the value of {@link #getMaxSeekToPreviousPosition()} changes. * Called when the value of {@link #getMaxSeekToPreviousPosition()} changes.
...@@ -640,8 +640,8 @@ public interface Player { ...@@ -640,8 +640,8 @@ public interface Player {
COMMAND_SEEK_TO_NEXT_WINDOW, COMMAND_SEEK_TO_NEXT_WINDOW,
COMMAND_SEEK_TO_PREVIOUS_WINDOW, COMMAND_SEEK_TO_PREVIOUS_WINDOW,
COMMAND_SEEK_TO_WINDOW, COMMAND_SEEK_TO_WINDOW,
COMMAND_SEEK_FORWARD,
COMMAND_SEEK_BACK, COMMAND_SEEK_BACK,
COMMAND_SEEK_FORWARD,
COMMAND_SET_SPEED_AND_PITCH, COMMAND_SET_SPEED_AND_PITCH,
COMMAND_SET_SHUFFLE_MODE, COMMAND_SET_SHUFFLE_MODE,
COMMAND_SET_REPEAT_MODE, COMMAND_SET_REPEAT_MODE,
...@@ -1106,8 +1106,8 @@ public interface Player { ...@@ -1106,8 +1106,8 @@ public interface Player {
EVENT_AVAILABLE_COMMANDS_CHANGED, EVENT_AVAILABLE_COMMANDS_CHANGED,
EVENT_MEDIA_METADATA_CHANGED, EVENT_MEDIA_METADATA_CHANGED,
EVENT_PLAYLIST_METADATA_CHANGED, EVENT_PLAYLIST_METADATA_CHANGED,
EVENT_SEEK_FORWARD_INCREMENT_CHANGED,
EVENT_SEEK_BACK_INCREMENT_CHANGED, EVENT_SEEK_BACK_INCREMENT_CHANGED,
EVENT_SEEK_FORWARD_INCREMENT_CHANGED,
EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED
}) })
@interface Event {} @interface Event {}
...@@ -1148,10 +1148,10 @@ public interface Player { ...@@ -1148,10 +1148,10 @@ public interface Player {
int EVENT_MEDIA_METADATA_CHANGED = 15; int EVENT_MEDIA_METADATA_CHANGED = 15;
/** {@link #getPlaylistMetadata()} changed. */ /** {@link #getPlaylistMetadata()} changed. */
int EVENT_PLAYLIST_METADATA_CHANGED = 16; int EVENT_PLAYLIST_METADATA_CHANGED = 16;
/** {@link #getSeekForwardIncrement()} changed. */
int EVENT_SEEK_FORWARD_INCREMENT_CHANGED = 17;
/** {@link #getSeekBackIncrement()} changed. */ /** {@link #getSeekBackIncrement()} changed. */
int EVENT_SEEK_BACK_INCREMENT_CHANGED = 18; int EVENT_SEEK_BACK_INCREMENT_CHANGED = 17;
/** {@link #getSeekForwardIncrement()} changed. */
int EVENT_SEEK_FORWARD_INCREMENT_CHANGED = 18;
/** {@link #getMaxSeekToPreviousPosition()} changed. */ /** {@link #getMaxSeekToPreviousPosition()} changed. */
int EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED = 19; int EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED = 19;
...@@ -1159,9 +1159,9 @@ public interface Player { ...@@ -1159,9 +1159,9 @@ public interface Player {
* Commands that can be executed on a {@code Player}. One of {@link #COMMAND_PLAY_PAUSE}, {@link * Commands that can be executed on a {@code Player}. One of {@link #COMMAND_PLAY_PAUSE}, {@link
* #COMMAND_PREPARE_STOP}, {@link #COMMAND_SEEK_TO_DEFAULT_POSITION}, {@link * #COMMAND_PREPARE_STOP}, {@link #COMMAND_SEEK_TO_DEFAULT_POSITION}, {@link
* #COMMAND_SEEK_IN_CURRENT_WINDOW}, {@link #COMMAND_SEEK_TO_NEXT_WINDOW}, {@link * #COMMAND_SEEK_IN_CURRENT_WINDOW}, {@link #COMMAND_SEEK_TO_NEXT_WINDOW}, {@link
* #COMMAND_SEEK_TO_PREVIOUS_WINDOW}, {@link #COMMAND_SEEK_TO_WINDOW}, {@link * #COMMAND_SEEK_TO_PREVIOUS_WINDOW}, {@link #COMMAND_SEEK_TO_WINDOW}, {@link #COMMAND_SEEK_BACK},
* #COMMAND_SEEK_FORWARD}, {@link #COMMAND_SEEK_BACK}, {@link #COMMAND_SET_SPEED_AND_PITCH}, * {@link #COMMAND_SEEK_FORWARD}, {@link #COMMAND_SET_SPEED_AND_PITCH}, {@link
* {@link #COMMAND_SET_SHUFFLE_MODE}, {@link #COMMAND_SET_REPEAT_MODE}, {@link * #COMMAND_SET_SHUFFLE_MODE}, {@link #COMMAND_SET_REPEAT_MODE}, {@link
* #COMMAND_GET_CURRENT_MEDIA_ITEM}, {@link #COMMAND_GET_MEDIA_ITEMS}, {@link * #COMMAND_GET_CURRENT_MEDIA_ITEM}, {@link #COMMAND_GET_MEDIA_ITEMS}, {@link
* #COMMAND_GET_MEDIA_ITEMS_METADATA}, {@link #COMMAND_SET_MEDIA_ITEMS_METADATA}, {@link * #COMMAND_GET_MEDIA_ITEMS_METADATA}, {@link #COMMAND_SET_MEDIA_ITEMS_METADATA}, {@link
* #COMMAND_CHANGE_MEDIA_ITEMS}, {@link #COMMAND_GET_AUDIO_ATTRIBUTES}, {@link * #COMMAND_CHANGE_MEDIA_ITEMS}, {@link #COMMAND_GET_AUDIO_ATTRIBUTES}, {@link
...@@ -1180,8 +1180,8 @@ public interface Player { ...@@ -1180,8 +1180,8 @@ public interface Player {
COMMAND_SEEK_TO_NEXT_WINDOW, COMMAND_SEEK_TO_NEXT_WINDOW,
COMMAND_SEEK_TO_PREVIOUS_WINDOW, COMMAND_SEEK_TO_PREVIOUS_WINDOW,
COMMAND_SEEK_TO_WINDOW, COMMAND_SEEK_TO_WINDOW,
COMMAND_SEEK_FORWARD,
COMMAND_SEEK_BACK, COMMAND_SEEK_BACK,
COMMAND_SEEK_FORWARD,
COMMAND_SET_SPEED_AND_PITCH, COMMAND_SET_SPEED_AND_PITCH,
COMMAND_SET_SHUFFLE_MODE, COMMAND_SET_SHUFFLE_MODE,
COMMAND_SET_REPEAT_MODE, COMMAND_SET_REPEAT_MODE,
...@@ -1214,10 +1214,10 @@ public interface Player { ...@@ -1214,10 +1214,10 @@ public interface Player {
int COMMAND_SEEK_TO_PREVIOUS_WINDOW = 6; int COMMAND_SEEK_TO_PREVIOUS_WINDOW = 6;
/** Command to seek anywhere in any window. */ /** Command to seek anywhere in any window. */
int COMMAND_SEEK_TO_WINDOW = 7; int COMMAND_SEEK_TO_WINDOW = 7;
/** Command to seek forward into the current window. */
int COMMAND_SEEK_FORWARD = 8;
/** Command to seek back into the current window. */ /** Command to seek back into the current window. */
int COMMAND_SEEK_BACK = 9; int COMMAND_SEEK_BACK = 8;
/** Command to seek forward into the current window. */
int COMMAND_SEEK_FORWARD = 9;
/** Command to set the playback speed and pitch. */ /** Command to set the playback speed and pitch. */
int COMMAND_SET_SPEED_AND_PITCH = 10; int COMMAND_SET_SPEED_AND_PITCH = 10;
/** Command to enable shuffling. */ /** Command to enable shuffling. */
...@@ -1624,17 +1624,6 @@ public interface Player { ...@@ -1624,17 +1624,6 @@ public interface Player {
void seekTo(int windowIndex, long positionMs); void seekTo(int windowIndex, long positionMs);
/** /**
* Returns the {@link #seekForward()} increment.
*
* @return The seek forward increment, in milliseconds.
* @see Listener#onSeekForwardIncrementChanged(long)
*/
long getSeekForwardIncrement();
/** Seeks forward in the current window by {@link #getSeekForwardIncrement()} milliseconds. */
void seekForward();
/**
* Returns the {@link #seekBack()} increment. * Returns the {@link #seekBack()} increment.
* *
* @return The seek back increment, in milliseconds. * @return The seek back increment, in milliseconds.
...@@ -1646,6 +1635,17 @@ public interface Player { ...@@ -1646,6 +1635,17 @@ public interface Player {
void seekBack(); void seekBack();
/** /**
* Returns the {@link #seekForward()} increment.
*
* @return The seek forward increment, in milliseconds.
* @see Listener#onSeekForwardIncrementChanged(long)
*/
long getSeekForwardIncrement();
/** Seeks forward in the current window by {@link #getSeekForwardIncrement()} milliseconds. */
void seekForward();
/**
* Returns whether a previous window exists, which may depend on the current repeat mode and * Returns whether a previous window exists, which may depend on the current repeat mode and
* whether shuffle mode is enabled. * whether shuffle mode is enabled.
* *
......
...@@ -828,8 +828,8 @@ public interface ExoPlayer extends Player { ...@@ -828,8 +828,8 @@ public interface ExoPlayer extends Player {
analyticsCollector, analyticsCollector,
useLazyPreparation, useLazyPreparation,
seekParameters, seekParameters,
C.DEFAULT_SEEK_FORWARD_INCREMENT_MS,
C.DEFAULT_SEEK_BACK_INCREMENT_MS, C.DEFAULT_SEEK_BACK_INCREMENT_MS,
C.DEFAULT_SEEK_FORWARD_INCREMENT_MS,
livePlaybackSpeedControl, livePlaybackSpeedControl,
releaseTimeoutMs, releaseTimeoutMs,
pauseAtEndOfMediaItems, pauseAtEndOfMediaItems,
......
...@@ -88,8 +88,8 @@ import java.util.concurrent.CopyOnWriteArraySet; ...@@ -88,8 +88,8 @@ import java.util.concurrent.CopyOnWriteArraySet;
@Nullable private final AnalyticsCollector analyticsCollector; @Nullable private final AnalyticsCollector analyticsCollector;
private final Looper applicationLooper; private final Looper applicationLooper;
private final BandwidthMeter bandwidthMeter; private final BandwidthMeter bandwidthMeter;
private final long seekForwardIncrementMs;
private final long seekBackIncrementMs; private final long seekBackIncrementMs;
private final long seekForwardIncrementMs;
private final Clock clock; private final Clock clock;
@RepeatMode private int repeatMode; @RepeatMode private int repeatMode;
...@@ -127,8 +127,8 @@ import java.util.concurrent.CopyOnWriteArraySet; ...@@ -127,8 +127,8 @@ import java.util.concurrent.CopyOnWriteArraySet;
* loads and other initial preparation steps happen immediately. If true, these initial * loads and other initial preparation steps happen immediately. If true, these initial
* preparations are triggered only when the player starts buffering the media. * preparations are triggered only when the player starts buffering the media.
* @param seekParameters The {@link SeekParameters}. * @param seekParameters The {@link SeekParameters}.
* @param seekForwardIncrementMs The {@link #seekForward()} increment in milliseconds.
* @param seekBackIncrementMs The {@link #seekBack()} increment in milliseconds. * @param seekBackIncrementMs The {@link #seekBack()} increment in milliseconds.
* @param seekForwardIncrementMs The {@link #seekForward()} increment in milliseconds.
* @param livePlaybackSpeedControl The {@link LivePlaybackSpeedControl}. * @param livePlaybackSpeedControl The {@link LivePlaybackSpeedControl}.
* @param releaseTimeoutMs The timeout for calls to {@link #release()} in milliseconds. * @param releaseTimeoutMs The timeout for calls to {@link #release()} in milliseconds.
* @param pauseAtEndOfMediaItems Whether to pause playback at the end of each media item. * @param pauseAtEndOfMediaItems Whether to pause playback at the end of each media item.
...@@ -150,8 +150,8 @@ import java.util.concurrent.CopyOnWriteArraySet; ...@@ -150,8 +150,8 @@ import java.util.concurrent.CopyOnWriteArraySet;
@Nullable AnalyticsCollector analyticsCollector, @Nullable AnalyticsCollector analyticsCollector,
boolean useLazyPreparation, boolean useLazyPreparation,
SeekParameters seekParameters, SeekParameters seekParameters,
long seekForwardIncrementMs,
long seekBackIncrementMs, long seekBackIncrementMs,
long seekForwardIncrementMs,
LivePlaybackSpeedControl livePlaybackSpeedControl, LivePlaybackSpeedControl livePlaybackSpeedControl,
long releaseTimeoutMs, long releaseTimeoutMs,
boolean pauseAtEndOfMediaItems, boolean pauseAtEndOfMediaItems,
...@@ -176,8 +176,8 @@ import java.util.concurrent.CopyOnWriteArraySet; ...@@ -176,8 +176,8 @@ import java.util.concurrent.CopyOnWriteArraySet;
this.analyticsCollector = analyticsCollector; this.analyticsCollector = analyticsCollector;
this.useLazyPreparation = useLazyPreparation; this.useLazyPreparation = useLazyPreparation;
this.seekParameters = seekParameters; this.seekParameters = seekParameters;
this.seekForwardIncrementMs = seekForwardIncrementMs;
this.seekBackIncrementMs = seekBackIncrementMs; this.seekBackIncrementMs = seekBackIncrementMs;
this.seekForwardIncrementMs = seekForwardIncrementMs;
this.pauseAtEndOfMediaItems = pauseAtEndOfMediaItems; this.pauseAtEndOfMediaItems = pauseAtEndOfMediaItems;
this.applicationLooper = applicationLooper; this.applicationLooper = applicationLooper;
this.clock = clock; this.clock = clock;
...@@ -721,13 +721,13 @@ import java.util.concurrent.CopyOnWriteArraySet; ...@@ -721,13 +721,13 @@ import java.util.concurrent.CopyOnWriteArraySet;
} }
@Override @Override
public long getSeekForwardIncrement() { public long getSeekBackIncrement() {
return seekForwardIncrementMs; return seekBackIncrementMs;
} }
@Override @Override
public long getSeekBackIncrement() { public long getSeekForwardIncrement() {
return seekBackIncrementMs; return seekForwardIncrementMs;
} }
@Override @Override
......
...@@ -129,8 +129,8 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -129,8 +129,8 @@ public class SimpleExoPlayer extends BasePlayer
@C.VideoScalingMode private int videoScalingMode; @C.VideoScalingMode private int videoScalingMode;
private boolean useLazyPreparation; private boolean useLazyPreparation;
private SeekParameters seekParameters; private SeekParameters seekParameters;
private long seekForwardIncrementMs;
private long seekBackIncrementMs; private long seekBackIncrementMs;
private long seekForwardIncrementMs;
private LivePlaybackSpeedControl livePlaybackSpeedControl; private LivePlaybackSpeedControl livePlaybackSpeedControl;
private long releaseTimeoutMs; private long releaseTimeoutMs;
private long detachSurfaceTimeoutMs; private long detachSurfaceTimeoutMs;
...@@ -167,8 +167,8 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -167,8 +167,8 @@ public class SimpleExoPlayer extends BasePlayer
* <li>{@link C.VideoScalingMode}: {@link C#VIDEO_SCALING_MODE_DEFAULT} * <li>{@link C.VideoScalingMode}: {@link C#VIDEO_SCALING_MODE_DEFAULT}
* <li>{@code useLazyPreparation}: {@code true} * <li>{@code useLazyPreparation}: {@code true}
* <li>{@link SeekParameters}: {@link SeekParameters#DEFAULT} * <li>{@link SeekParameters}: {@link SeekParameters#DEFAULT}
* <li>{@code seekForwardIncrementMs}: {@link C#DEFAULT_SEEK_FORWARD_INCREMENT_MS}
* <li>{@code seekBackIncrementMs}: {@link C#DEFAULT_SEEK_BACK_INCREMENT_MS} * <li>{@code seekBackIncrementMs}: {@link C#DEFAULT_SEEK_BACK_INCREMENT_MS}
* <li>{@code seekForwardIncrementMs}: {@link C#DEFAULT_SEEK_FORWARD_INCREMENT_MS}
* <li>{@code releaseTimeoutMs}: {@link ExoPlayer#DEFAULT_RELEASE_TIMEOUT_MS} * <li>{@code releaseTimeoutMs}: {@link ExoPlayer#DEFAULT_RELEASE_TIMEOUT_MS}
* <li>{@code detachSurfaceTimeoutMs}: {@link #DEFAULT_DETACH_SURFACE_TIMEOUT_MS} * <li>{@code detachSurfaceTimeoutMs}: {@link #DEFAULT_DETACH_SURFACE_TIMEOUT_MS}
* <li>{@code pauseAtEndOfMediaItems}: {@code false} * <li>{@code pauseAtEndOfMediaItems}: {@code false}
...@@ -266,8 +266,8 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -266,8 +266,8 @@ public class SimpleExoPlayer extends BasePlayer
videoScalingMode = C.VIDEO_SCALING_MODE_DEFAULT; videoScalingMode = C.VIDEO_SCALING_MODE_DEFAULT;
useLazyPreparation = true; useLazyPreparation = true;
seekParameters = SeekParameters.DEFAULT; seekParameters = SeekParameters.DEFAULT;
seekForwardIncrementMs = C.DEFAULT_SEEK_FORWARD_INCREMENT_MS;
seekBackIncrementMs = C.DEFAULT_SEEK_BACK_INCREMENT_MS; seekBackIncrementMs = C.DEFAULT_SEEK_BACK_INCREMENT_MS;
seekForwardIncrementMs = C.DEFAULT_SEEK_FORWARD_INCREMENT_MS;
livePlaybackSpeedControl = new DefaultLivePlaybackSpeedControl.Builder().build(); livePlaybackSpeedControl = new DefaultLivePlaybackSpeedControl.Builder().build();
clock = Clock.DEFAULT; clock = Clock.DEFAULT;
releaseTimeoutMs = ExoPlayer.DEFAULT_RELEASE_TIMEOUT_MS; releaseTimeoutMs = ExoPlayer.DEFAULT_RELEASE_TIMEOUT_MS;
...@@ -504,32 +504,32 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -504,32 +504,32 @@ public class SimpleExoPlayer extends BasePlayer
} }
/** /**
* Sets the {@link #seekForward()} increment. * Sets the {@link #seekBack()} increment.
* *
* @param seekForwardIncrementMs The seek forward increment, in milliseconds. * @param seekBackIncrementMs The seek back increment, in milliseconds.
* @return This builder. * @return This builder.
* @throws IllegalArgumentException If {@code seekForwardIncrementMs} is non-positive. * @throws IllegalArgumentException If {@code seekBackIncrementMs} is non-positive.
* @throws IllegalStateException If {@link #build()} has already been called. * @throws IllegalStateException If {@link #build()} has already been called.
*/ */
public Builder setSeekForwardIncrementMs(@IntRange(from = 1) long seekForwardIncrementMs) { public Builder setSeekBackIncrementMs(@IntRange(from = 1) long seekBackIncrementMs) {
checkArgument(seekForwardIncrementMs > 0); checkArgument(seekBackIncrementMs > 0);
Assertions.checkState(!buildCalled); Assertions.checkState(!buildCalled);
this.seekForwardIncrementMs = seekForwardIncrementMs; this.seekBackIncrementMs = seekBackIncrementMs;
return this; return this;
} }
/** /**
* Sets the {@link #seekBack()} increment. * Sets the {@link #seekForward()} increment.
* *
* @param seekBackIncrementMs The seek back increment, in milliseconds. * @param seekForwardIncrementMs The seek forward increment, in milliseconds.
* @return This builder. * @return This builder.
* @throws IllegalArgumentException If {@code seekBackIncrementMs} is non-positive. * @throws IllegalArgumentException If {@code seekForwardIncrementMs} is non-positive.
* @throws IllegalStateException If {@link #build()} has already been called. * @throws IllegalStateException If {@link #build()} has already been called.
*/ */
public Builder setSeekBackIncrementMs(@IntRange(from = 1) long seekBackIncrementMs) { public Builder setSeekForwardIncrementMs(@IntRange(from = 1) long seekForwardIncrementMs) {
checkArgument(seekBackIncrementMs > 0); checkArgument(seekForwardIncrementMs > 0);
Assertions.checkState(!buildCalled); Assertions.checkState(!buildCalled);
this.seekBackIncrementMs = seekBackIncrementMs; this.seekForwardIncrementMs = seekForwardIncrementMs;
return this; return this;
} }
...@@ -762,8 +762,8 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -762,8 +762,8 @@ public class SimpleExoPlayer extends BasePlayer
analyticsCollector, analyticsCollector,
builder.useLazyPreparation, builder.useLazyPreparation,
builder.seekParameters, builder.seekParameters,
builder.seekForwardIncrementMs,
builder.seekBackIncrementMs, builder.seekBackIncrementMs,
builder.seekForwardIncrementMs,
builder.livePlaybackSpeedControl, builder.livePlaybackSpeedControl,
builder.releaseTimeoutMs, builder.releaseTimeoutMs,
builder.pauseAtEndOfMediaItems, builder.pauseAtEndOfMediaItems,
...@@ -1603,15 +1603,15 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -1603,15 +1603,15 @@ public class SimpleExoPlayer extends BasePlayer
} }
@Override @Override
public long getSeekForwardIncrement() { public long getSeekBackIncrement() {
verifyApplicationThread(); verifyApplicationThread();
return player.getSeekForwardIncrement(); return player.getSeekBackIncrement();
} }
@Override @Override
public long getSeekBackIncrement() { public long getSeekForwardIncrement() {
verifyApplicationThread(); verifyApplicationThread();
return player.getSeekBackIncrement(); return player.getSeekForwardIncrement();
} }
@Override @Override
......
...@@ -743,21 +743,21 @@ public class AnalyticsCollector ...@@ -743,21 +743,21 @@ public class AnalyticsCollector
} }
@Override @Override
public void onSeekForwardIncrementChanged(long seekForwardIncrementMs) { public void onSeekBackIncrementChanged(long seekBackIncrementMs) {
EventTime eventTime = generateCurrentPlayerMediaPeriodEventTime(); EventTime eventTime = generateCurrentPlayerMediaPeriodEventTime();
sendEvent( sendEvent(
eventTime, eventTime,
AnalyticsListener.EVENT_SEEK_FORWARD_INCREMENT_CHANGED, AnalyticsListener.EVENT_SEEK_BACK_INCREMENT_CHANGED,
listener -> listener.onSeekForwardIncrementChanged(eventTime, seekForwardIncrementMs)); listener -> listener.onSeekBackIncrementChanged(eventTime, seekBackIncrementMs));
} }
@Override @Override
public void onSeekBackIncrementChanged(long seekBackIncrementMs) { public void onSeekForwardIncrementChanged(long seekForwardIncrementMs) {
EventTime eventTime = generateCurrentPlayerMediaPeriodEventTime(); EventTime eventTime = generateCurrentPlayerMediaPeriodEventTime();
sendEvent( sendEvent(
eventTime, eventTime,
AnalyticsListener.EVENT_SEEK_BACK_INCREMENT_CHANGED, AnalyticsListener.EVENT_SEEK_FORWARD_INCREMENT_CHANGED,
listener -> listener.onSeekBackIncrementChanged(eventTime, seekBackIncrementMs)); listener -> listener.onSeekForwardIncrementChanged(eventTime, seekForwardIncrementMs));
} }
@Override @Override
......
...@@ -172,8 +172,8 @@ public interface AnalyticsListener { ...@@ -172,8 +172,8 @@ public interface AnalyticsListener {
EVENT_AVAILABLE_COMMANDS_CHANGED, EVENT_AVAILABLE_COMMANDS_CHANGED,
EVENT_MEDIA_METADATA_CHANGED, EVENT_MEDIA_METADATA_CHANGED,
EVENT_PLAYLIST_METADATA_CHANGED, EVENT_PLAYLIST_METADATA_CHANGED,
EVENT_SEEK_FORWARD_INCREMENT_CHANGED,
EVENT_SEEK_BACK_INCREMENT_CHANGED, EVENT_SEEK_BACK_INCREMENT_CHANGED,
EVENT_SEEK_FORWARD_INCREMENT_CHANGED,
EVENT_LOAD_STARTED, EVENT_LOAD_STARTED,
EVENT_LOAD_COMPLETED, EVENT_LOAD_COMPLETED,
EVENT_LOAD_CANCELED, EVENT_LOAD_CANCELED,
...@@ -256,10 +256,10 @@ public interface AnalyticsListener { ...@@ -256,10 +256,10 @@ public interface AnalyticsListener {
int EVENT_MEDIA_METADATA_CHANGED = Player.EVENT_MEDIA_METADATA_CHANGED; int EVENT_MEDIA_METADATA_CHANGED = Player.EVENT_MEDIA_METADATA_CHANGED;
/** {@link Player#getPlaylistMetadata()} changed. */ /** {@link Player#getPlaylistMetadata()} changed. */
int EVENT_PLAYLIST_METADATA_CHANGED = Player.EVENT_PLAYLIST_METADATA_CHANGED; int EVENT_PLAYLIST_METADATA_CHANGED = Player.EVENT_PLAYLIST_METADATA_CHANGED;
/** {@link Player#getSeekForwardIncrement()} changed. */
int EVENT_SEEK_FORWARD_INCREMENT_CHANGED = Player.EVENT_SEEK_FORWARD_INCREMENT_CHANGED;
/** {@link Player#getSeekBackIncrement()} changed. */ /** {@link Player#getSeekBackIncrement()} changed. */
int EVENT_SEEK_BACK_INCREMENT_CHANGED = Player.EVENT_SEEK_BACK_INCREMENT_CHANGED; int EVENT_SEEK_BACK_INCREMENT_CHANGED = Player.EVENT_SEEK_BACK_INCREMENT_CHANGED;
/** {@link Player#getSeekForwardIncrement()} changed. */
int EVENT_SEEK_FORWARD_INCREMENT_CHANGED = Player.EVENT_SEEK_FORWARD_INCREMENT_CHANGED;
/** {@link Player#getMaxSeekToPreviousPosition()} changed. */ /** {@link Player#getMaxSeekToPreviousPosition()} changed. */
int EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED = int EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED =
Player.EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED; Player.EVENT_MAX_SEEK_TO_PREVIOUS_POSITION_CHANGED;
...@@ -599,20 +599,20 @@ public interface AnalyticsListener { ...@@ -599,20 +599,20 @@ public interface AnalyticsListener {
EventTime eventTime, PlaybackParameters playbackParameters) {} EventTime eventTime, PlaybackParameters playbackParameters) {}
/** /**
* Called when the seek forward increment changed. * Called when the seek back increment changed.
* *
* @param eventTime The event time. * @param eventTime The event time.
* @param seekForwardIncrementMs The seek forward increment, in milliseconds. * @param seekBackIncrementMs The seek back increment, in milliseconds.
*/ */
default void onSeekForwardIncrementChanged(EventTime eventTime, long seekForwardIncrementMs) {} default void onSeekBackIncrementChanged(EventTime eventTime, long seekBackIncrementMs) {}
/** /**
* Called when the seek back increment changed. * Called when the seek forward increment changed.
* *
* @param eventTime The event time. * @param eventTime The event time.
* @param seekBackIncrementMs The seek back increment, in milliseconds. * @param seekForwardIncrementMs The seek forward increment, in milliseconds.
*/ */
default void onSeekBackIncrementChanged(EventTime eventTime, long seekBackIncrementMs) {} default void onSeekForwardIncrementChanged(EventTime eventTime, long seekForwardIncrementMs) {}
/** /**
* Called when the maximum position for which {@link Player#seekToPrevious()} seeks to the * Called when the maximum position for which {@link Player#seekToPrevious()} seeks to the
......
...@@ -300,12 +300,12 @@ public class StubExoPlayer extends BasePlayer implements ExoPlayer { ...@@ -300,12 +300,12 @@ public class StubExoPlayer extends BasePlayer implements ExoPlayer {
} }
@Override @Override
public long getSeekForwardIncrement() { public long getSeekBackIncrement() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override @Override
public long getSeekBackIncrement() { public long getSeekForwardIncrement() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment