Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
912acacb
authored
Jun 15, 2021
by
kimvde
Committed by
Oliver Woodman
Jun 15, 2021
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Add onFastForward/RewindIncrementChanged to Player
PiperOrigin-RevId: 379497408
parent
7d81f20f
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
153 additions
and
5 deletions
extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java
extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/CastPlayerTest.java
library/common/src/main/java/com/google/android/exoplayer2/ForwardingPlayer.java
library/common/src/main/java/com/google/android/exoplayer2/Player.java
library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java
library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java
library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsListener.java
library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java
extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java
View file @
912acacb
...
...
@@ -421,7 +421,13 @@ public final class CastPlayer extends BasePlayer {
@Override
public
void
setFastForwardIncrement
(
long
fastForwardIncrementMs
)
{
checkArgument
(
fastForwardIncrementMs
>
0
);
this
.
fastForwardIncrementMs
=
fastForwardIncrementMs
;
if
(
this
.
fastForwardIncrementMs
!=
fastForwardIncrementMs
)
{
this
.
fastForwardIncrementMs
=
fastForwardIncrementMs
;
listeners
.
queueEvent
(
Player
.
EVENT_FAST_FORWARD_INCREMENT_CHANGED
,
listener
->
listener
.
onFastForwardIncrementChanged
(
fastForwardIncrementMs
));
listeners
.
flushEvents
();
}
}
@Override
...
...
@@ -432,7 +438,13 @@ public final class CastPlayer extends BasePlayer {
@Override
public
void
setRewindIncrement
(
long
rewindIncrementMs
)
{
checkArgument
(
rewindIncrementMs
>
0
);
this
.
rewindIncrementMs
=
rewindIncrementMs
;
if
(
this
.
rewindIncrementMs
!=
rewindIncrementMs
)
{
this
.
rewindIncrementMs
=
rewindIncrementMs
;
listeners
.
queueEvent
(
Player
.
EVENT_REWIND_INCREMENT_CHANGED
,
listener
->
listener
.
onRewindIncrementChanged
(
rewindIncrementMs
));
listeners
.
flushEvents
();
}
}
@Override
...
...
extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/CastPlayerTest.java
View file @
912acacb
...
...
@@ -1109,6 +1109,16 @@ public class CastPlayerTest {
}
@Test
public
void
setFastForwardIncrement_notifiesFastForwardIncrementChanged
()
{
long
fastForwardIncrementMs
=
1000
;
castPlayer
.
setFastForwardIncrement
(
fastForwardIncrementMs
);
verify
(
mockListener
).
onFastForwardIncrementChanged
(
fastForwardIncrementMs
);
assertThat
(
castPlayer
.
getFastForwardIncrement
()).
isEqualTo
(
fastForwardIncrementMs
);
}
@Test
@SuppressWarnings
(
"deprecation"
)
// Mocks deprecated method used by the CastPlayer.
public
void
fastForward_notifiesPositionDiscontinuity
()
{
when
(
mockRemoteMediaClient
.
seek
(
anyLong
())).
thenReturn
(
mockPendingResult
);
...
...
@@ -1155,6 +1165,16 @@ public class CastPlayerTest {
}
@Test
public
void
setRewindIncrement_notifiesRewindIncrementChanged
()
{
long
rewindIncrementMs
=
1000
;
castPlayer
.
setRewindIncrement
(
rewindIncrementMs
);
verify
(
mockListener
).
onRewindIncrementChanged
(
rewindIncrementMs
);
assertThat
(
castPlayer
.
getRewindIncrement
()).
isEqualTo
(
rewindIncrementMs
);
}
@Test
@SuppressWarnings
(
"deprecation"
)
// Mocks deprecated method used by the CastPlayer.
public
void
rewind_notifiesPositionDiscontinuity
()
{
when
(
mockRemoteMediaClient
.
seek
(
anyLong
())).
thenReturn
(
mockPendingResult
);
...
...
library/common/src/main/java/com/google/android/exoplayer2/ForwardingPlayer.java
View file @
912acacb
...
...
@@ -702,6 +702,16 @@ public class ForwardingPlayer implements Player {
}
@Override
public
void
onFastForwardIncrementChanged
(
long
fastForwardIncrementMs
)
{
eventListener
.
onFastForwardIncrementChanged
(
fastForwardIncrementMs
);
}
@Override
public
void
onRewindIncrementChanged
(
long
rewindIncrementMs
)
{
eventListener
.
onRewindIncrementChanged
(
rewindIncrementMs
);
}
@Override
public
void
onSeekProcessed
()
{
eventListener
.
onSeekProcessed
();
}
...
...
library/common/src/main/java/com/google/android/exoplayer2/Player.java
View file @
912acacb
...
...
@@ -308,6 +308,26 @@ public interface Player {
default
void
onPlaybackParametersChanged
(
PlaybackParameters
playbackParameters
)
{}
/**
* Called when the value of {@link #getFastForwardIncrement()} changes.
*
* <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.
*
* @param fastForwardIncrementMs The {@link #fastForward()} increment, in milliseconds.
*/
default
void
onFastForwardIncrementChanged
(
@IntRange
(
from
=
1
)
long
fastForwardIncrementMs
)
{}
/**
* Called when the value of {@link #getRewindIncrement()} changes.
*
* <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.
*
* @param rewindIncrementMs The {@link #rewind()} increment, in milliseconds.
*/
default
void
onRewindIncrementChanged
(
@IntRange
(
from
=
1
)
long
rewindIncrementMs
)
{}
/**
* @deprecated Seeks are processed without delay. Listen to {@link
* #onPositionDiscontinuity(PositionInfo, PositionInfo, int)} with reason {@link
* #DISCONTINUITY_REASON_SEEK} instead.
...
...
@@ -1066,7 +1086,9 @@ public interface Player {
EVENT_PLAYBACK_PARAMETERS_CHANGED
,
EVENT_AVAILABLE_COMMANDS_CHANGED
,
EVENT_MEDIA_METADATA_CHANGED
,
EVENT_PLAYLIST_MEDIA_METADATA_CHANGED
EVENT_PLAYLIST_MEDIA_METADATA_CHANGED
,
EVENT_FAST_FORWARD_INCREMENT_CHANGED
,
EVENT_REWIND_INCREMENT_CHANGED
})
@interface
EventFlags
{}
/** {@link #getCurrentTimeline()} changed. */
...
...
@@ -1106,6 +1128,10 @@ public interface Player {
int
EVENT_MEDIA_METADATA_CHANGED
=
15
;
/** {@link #getPlaylistMediaMetadata()} changed. */
int
EVENT_PLAYLIST_MEDIA_METADATA_CHANGED
=
16
;
/** {@link #getFastForwardIncrement()} changed. */
int
EVENT_FAST_FORWARD_INCREMENT_CHANGED
=
17
;
/** {@link #getRewindIncrement()} changed. */
int
EVENT_REWIND_INCREMENT_CHANGED
=
18
;
/**
* Commands that can be executed on a {@code Player}. One of {@link #COMMAND_PLAY_PAUSE}, {@link
...
...
@@ -1590,6 +1616,7 @@ public interface Player {
* <p>The default value is {@link #DEFAULT_FAST_FORWARD_INCREMENT_MS}.
*
* @return The fast forward increment, in milliseconds.
* @see Listener#onFastForwardIncrementChanged(long)
*/
long
getFastForwardIncrement
();
...
...
@@ -1610,6 +1637,7 @@ public interface Player {
* <p>The default value is {@link #DEFAULT_REWIND_INCREMENT_MS}.
*
* @return The rewind increment, in milliseconds.
* @see Listener#onRewindIncrementChanged(long)
*/
long
getRewindIncrement
();
...
...
library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java
View file @
912acacb
...
...
@@ -722,7 +722,13 @@ import java.util.concurrent.CopyOnWriteArraySet;
@Override
public
void
setFastForwardIncrement
(
long
fastForwardIncrementMs
)
{
checkArgument
(
fastForwardIncrementMs
>
0
);
this
.
fastForwardIncrementMs
=
fastForwardIncrementMs
;
if
(
this
.
fastForwardIncrementMs
!=
fastForwardIncrementMs
)
{
this
.
fastForwardIncrementMs
=
fastForwardIncrementMs
;
listeners
.
queueEvent
(
Player
.
EVENT_FAST_FORWARD_INCREMENT_CHANGED
,
listener
->
listener
.
onFastForwardIncrementChanged
(
fastForwardIncrementMs
));
listeners
.
flushEvents
();
}
}
@Override
...
...
@@ -733,7 +739,13 @@ import java.util.concurrent.CopyOnWriteArraySet;
@Override
public
void
setRewindIncrement
(
long
rewindIncrementMs
)
{
checkArgument
(
rewindIncrementMs
>
0
);
this
.
rewindIncrementMs
=
rewindIncrementMs
;
if
(
this
.
rewindIncrementMs
!=
rewindIncrementMs
)
{
this
.
rewindIncrementMs
=
rewindIncrementMs
;
listeners
.
queueEvent
(
Player
.
EVENT_REWIND_INCREMENT_CHANGED
,
listener
->
listener
.
onRewindIncrementChanged
(
rewindIncrementMs
));
listeners
.
flushEvents
();
}
}
@Override
...
...
library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java
View file @
912acacb
...
...
@@ -750,6 +750,24 @@ public class AnalyticsCollector
}
@Override
public
void
onFastForwardIncrementChanged
(
long
fastForwardIncrementMs
)
{
EventTime
eventTime
=
generateCurrentPlayerMediaPeriodEventTime
();
sendEvent
(
eventTime
,
AnalyticsListener
.
EVENT_FAST_FORWARD_INCREMENT_CHANGED
,
listener
->
listener
.
onFastForwardIncrementChanged
(
eventTime
,
fastForwardIncrementMs
));
}
@Override
public
void
onRewindIncrementChanged
(
long
rewindIncrementMs
)
{
EventTime
eventTime
=
generateCurrentPlayerMediaPeriodEventTime
();
sendEvent
(
eventTime
,
AnalyticsListener
.
EVENT_REWIND_INCREMENT_CHANGED
,
listener
->
listener
.
onRewindIncrementChanged
(
eventTime
,
rewindIncrementMs
));
}
@Override
public
void
onMediaMetadataChanged
(
MediaMetadata
mediaMetadata
)
{
EventTime
eventTime
=
generateCurrentPlayerMediaPeriodEventTime
();
sendEvent
(
...
...
library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsListener.java
View file @
912acacb
...
...
@@ -172,6 +172,8 @@ public interface AnalyticsListener {
EVENT_AVAILABLE_COMMANDS_CHANGED
,
EVENT_MEDIA_METADATA_CHANGED
,
EVENT_PLAYLIST_MEDIA_METADATA_CHANGED
,
EVENT_FAST_FORWARD_INCREMENT_CHANGED
,
EVENT_REWIND_INCREMENT_CHANGED
,
EVENT_LOAD_STARTED
,
EVENT_LOAD_COMPLETED
,
EVENT_LOAD_CANCELED
,
...
...
@@ -254,6 +256,10 @@ public interface AnalyticsListener {
int
EVENT_MEDIA_METADATA_CHANGED
=
Player
.
EVENT_MEDIA_METADATA_CHANGED
;
/** {@link Player#getPlaylistMediaMetadata()} changed. */
int
EVENT_PLAYLIST_MEDIA_METADATA_CHANGED
=
Player
.
EVENT_PLAYLIST_MEDIA_METADATA_CHANGED
;
/** {@link Player#getFastForwardIncrement()} changed. */
int
EVENT_FAST_FORWARD_INCREMENT_CHANGED
=
Player
.
EVENT_FAST_FORWARD_INCREMENT_CHANGED
;
/** {@link Player#getRewindIncrement()} changed. */
int
EVENT_REWIND_INCREMENT_CHANGED
=
Player
.
EVENT_REWIND_INCREMENT_CHANGED
;
/** A source started loading data. */
int
EVENT_LOAD_STARTED
=
1000
;
// Intentional gap to leave space for new Player events
/** A source started completed loading data. */
...
...
@@ -590,6 +596,22 @@ public interface AnalyticsListener {
EventTime
eventTime
,
PlaybackParameters
playbackParameters
)
{}
/**
* Called when the fast forward increment changed.
*
* @param eventTime The event time.
* @param fastForwardIncrementMs The fast forward increment, in milliseconds.
*/
default
void
onFastForwardIncrementChanged
(
EventTime
eventTime
,
long
fastForwardIncrementMs
)
{}
/**
* Called when the rewind increment changed.
*
* @param eventTime The event time.
* @param rewindIncrementMs The rewind increment, in milliseconds.
*/
default
void
onRewindIncrementChanged
(
EventTime
eventTime
,
long
rewindIncrementMs
)
{}
/**
* Called when the repeat mode changed.
*
* @param eventTime The event time.
...
...
library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java
View file @
912acacb
...
...
@@ -10358,6 +10358,19 @@ public final class ExoPlayerTest {
}
@Test
public
void
setFastForwardIncrement_notifiesFastForwardIncrementChanged
()
{
ExoPlayer
player
=
new
TestExoPlayerBuilder
(
context
).
build
();
Player
.
Listener
listener
=
mock
(
Player
.
Listener
.
class
);
player
.
addListener
(
listener
);
long
fastForwardIncrementMs
=
1000
;
player
.
setFastForwardIncrement
(
fastForwardIncrementMs
);
verify
(
listener
).
onFastForwardIncrementChanged
(
fastForwardIncrementMs
);
assertThat
(
player
.
getFastForwardIncrement
()).
isEqualTo
(
fastForwardIncrementMs
);
}
@Test
public
void
fastForward_callsOnPositionDiscontinuity
()
throws
Exception
{
ExoPlayer
player
=
new
TestExoPlayerBuilder
(
context
).
build
();
Player
.
Listener
listener
=
mock
(
Player
.
Listener
.
class
);
...
...
@@ -10416,6 +10429,19 @@ public final class ExoPlayerTest {
}
@Test
public
void
setRewindIncrement_notifiesRewindIncrementChanged
()
{
ExoPlayer
player
=
new
TestExoPlayerBuilder
(
context
).
build
();
Player
.
Listener
listener
=
mock
(
Player
.
Listener
.
class
);
player
.
addListener
(
listener
);
long
rewindIncrementMs
=
1000
;
player
.
setRewindIncrement
(
rewindIncrementMs
);
verify
(
listener
).
onRewindIncrementChanged
(
rewindIncrementMs
);
assertThat
(
player
.
getRewindIncrement
()).
isEqualTo
(
rewindIncrementMs
);
}
@Test
public
void
rewind_callsOnPositionDiscontinuity
()
throws
Exception
{
ExoPlayer
player
=
new
TestExoPlayerBuilder
(
context
).
build
();
Player
.
Listener
listener
=
mock
(
Player
.
Listener
.
class
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment