Deprecate EventListener in favor of Listener
#minor-release PiperOrigin-RevId: 371348520
This commit is contained in:
parent
4bf7477e3e
commit
3dc6cf6bec
@ -30,7 +30,8 @@
|
||||
`ExoPlayer`.
|
||||
* Add `getMediaMetadata` to `Player` interface.
|
||||
* Add a `Listener` interface to receive all player events in a single
|
||||
object. Component Listeners have been deprecated in its favor.
|
||||
object. Component Listeners and `EventListener` have been deprecated in
|
||||
its favor.
|
||||
* `Player.setPlaybackParameters` no longer accepts null, use
|
||||
`PlaybackParameters.DEFAULT` instead.
|
||||
* Use an empty string instead of the URI if the media ID is not explicitly
|
||||
|
@ -57,14 +57,14 @@ player.prepare();
|
||||
|
||||
You can retrieve the current manifest by calling `Player.getCurrentManifest`.
|
||||
For DASH you should cast the returned object to `DashManifest`. The
|
||||
`onTimelineChanged` callback of `Player.EventListener` is also called whenever
|
||||
`onTimelineChanged` callback of `Player.Listener` is also called whenever
|
||||
the manifest is loaded. This will happen once for a on-demand content, and
|
||||
possibly many times for live content. The code snippet below shows how an app
|
||||
can do something whenever the manifest is loaded.
|
||||
|
||||
~~~
|
||||
player.addListener(
|
||||
new Player.EventListener() {
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onTimelineChanged(
|
||||
Timeline timeline, @Player.TimelineChangeReason int reason) {
|
||||
|
@ -60,14 +60,14 @@ player.prepare();
|
||||
|
||||
You can retrieve the current manifest by calling `Player.getCurrentManifest`.
|
||||
For HLS you should cast the returned object to `HlsManifest`. The
|
||||
`onTimelineChanged` callback of `Player.EventListener` is also called whenever
|
||||
`onTimelineChanged` callback of `Player.Listener` is also called whenever
|
||||
the manifest is loaded. This will happen once for a on-demand content, and
|
||||
possibly many times for live content. The code snippet below shows how an app
|
||||
can do something whenever the manifest is loaded.
|
||||
|
||||
~~~
|
||||
player.addListener(
|
||||
new Player.EventListener() {
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onTimelineChanged(
|
||||
Timeline timeline, @Player.TimelineChangeReason int reason) {
|
||||
|
@ -5,16 +5,16 @@ title: Player events
|
||||
## Listening to playback events ##
|
||||
|
||||
Events such as changes in state and playback errors are reported to registered
|
||||
[`Player.EventListener`][] instances. Registering a listener to receive such
|
||||
[`Player.Listener`][] instances. Registering a listener to receive such
|
||||
events is easy:
|
||||
|
||||
~~~
|
||||
// Add a listener to receive events from the player.
|
||||
player.addListener(eventListener);
|
||||
player.addListener(listener);
|
||||
~~~
|
||||
{: .language-java}
|
||||
|
||||
`Player.EventListener` has empty default methods, so you only need to implement
|
||||
`Player.Listener` has empty default methods, so you only need to implement
|
||||
the methods you're interested in. See the [Javadoc][] for a full description of
|
||||
the methods and when they're called. Some of the most important methods are
|
||||
described in more detail below.
|
||||
@ -28,7 +28,7 @@ should be preferred for different use cases.
|
||||
|
||||
Changes in player state can be received by implementing
|
||||
`onPlaybackStateChanged(@State int state)` in a registered
|
||||
`Player.EventListener`. The player can be in one of four playback states:
|
||||
`Player.Listener`. The player can be in one of four playback states:
|
||||
|
||||
* `Player.STATE_IDLE`: This is the initial state, the state when the player is
|
||||
stopped, and when playback failed.
|
||||
@ -68,7 +68,7 @@ public void onIsPlayingChanged(boolean isPlaying) {
|
||||
|
||||
Errors that cause playback to fail can be received by implementing
|
||||
`onPlayerError(ExoPlaybackException error)` in a registered
|
||||
`Player.EventListener`. When a failure occurs, this method will be called
|
||||
`Player.Listener`. When a failure occurs, this method will be called
|
||||
immediately before the playback state transitions to `Player.STATE_IDLE`.
|
||||
Failed or stopped playbacks can be retried by calling `ExoPlayer.retry`.
|
||||
|
||||
@ -107,7 +107,7 @@ public void onPlayerError(ExoPlaybackException error) {
|
||||
Whenever the player changes to a new media item in the playlist
|
||||
`onMediaItemTransition(MediaItem mediaItem,
|
||||
@MediaItemTransitionReason int reason)` is called on registered
|
||||
`Player.EventListener`s. The reason indicates whether this was an automatic
|
||||
`Player.Listener`s. The reason indicates whether this was an automatic
|
||||
transition, a seek (for example after calling `player.next()`), a repetition of
|
||||
the same item, or caused by a playlist change (e.g., if the currently playing
|
||||
item is removed).
|
||||
@ -115,7 +115,7 @@ item is removed).
|
||||
### Seeking ###
|
||||
|
||||
Calling `Player.seekTo` methods results in a series of callbacks to registered
|
||||
`Player.EventListener` instances:
|
||||
`Player.Listener` instances:
|
||||
|
||||
1. `onPositionDiscontinuity` with `reason=DISCONTINUITY_REASON_SEEK`. This is
|
||||
the direct result of calling `Player.seekTo`.
|
||||
@ -232,8 +232,8 @@ player
|
||||
~~~
|
||||
{: .language-java }
|
||||
|
||||
[`Player.EventListener`]: {{ site.exo_sdk }}/Player.EventListener.html
|
||||
[Javadoc]: {{ site.exo_sdk }}/Player.EventListener.html
|
||||
[`Player.Listener`]: {{ site.exo_sdk }}/Player.Listener.html
|
||||
[Javadoc]: {{ site.exo_sdk }}/Player.Listener.html
|
||||
[`Individual callbacks vs onEvents`]: #individual-callbacks-vs-onevents
|
||||
[`ExoPlaybackException`]: {{ site.exo_sdk }}/ExoPlaybackException.html
|
||||
[log output]: event-logger.html
|
||||
|
@ -25,7 +25,7 @@ closer to the live edge again.
|
||||
|
||||
## Detecting and monitoring live playbacks ##
|
||||
|
||||
Every time a live window is updated, registered `Player.EventListener` instances
|
||||
Every time a live window is updated, registered `Player.Listener` instances
|
||||
will receive an `onTimelineChanged` event. You can retrieve details about the
|
||||
current live playback by querying various `Player` and `Timeline.Window`
|
||||
methods, as listed below and shown in the following figure.
|
||||
@ -135,7 +135,7 @@ setting `minPlaybackSpeed` and `maxPlaybackSpeed` to `1.0f`.
|
||||
The playback position may fall behind the live window, for example if the player
|
||||
is paused or buffering for a long enough period of time. If this happens then
|
||||
playback will fail and a `BehindLiveWindowException` will be reported via
|
||||
`Player.EventListener.onPlayerError`. Application code may wish to handle such
|
||||
`Player.Listener.onPlayerError`. Application code may wish to handle such
|
||||
errors by resuming playback at the default position. The [PlayerActivity][] of
|
||||
the demo app exemplifies this approach.
|
||||
|
||||
|
@ -101,7 +101,7 @@ MediaItem mediaItem =
|
||||
## Detecting when playback transitions to another media item ##
|
||||
|
||||
When playback transitions to another media item, or starts repeating the same
|
||||
media item, `EventListener.onMediaItemTransition(MediaItem,
|
||||
media item, `Listener.onMediaItemTransition(MediaItem,
|
||||
@MediaItemTransitionReason)` is called. This callback receives the new media
|
||||
item, along with a `@MediaItemTransitionReason` indicating why the transition
|
||||
occurred. A common use case for `onMediaItemTransition` is to update the
|
||||
@ -135,7 +135,7 @@ public void onMediaItemTransition(
|
||||
## Detecting when the playlist changes ##
|
||||
|
||||
When a media item is added, removed or moved,
|
||||
`EventListener.onTimelineChanged(Timeline, @TimelineChangeReason)` is called
|
||||
`Listener.onTimelineChanged(Timeline, @TimelineChangeReason)` is called
|
||||
immediately with `TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED`. This callback is
|
||||
called even when the player has not yet been prepared.
|
||||
|
||||
|
@ -59,14 +59,14 @@ player.prepare();
|
||||
|
||||
You can retrieve the current manifest by calling `Player.getCurrentManifest`.
|
||||
For SmoothStreaming you should cast the returned object to `SsManifest`. The
|
||||
`onTimelineChanged` callback of `Player.EventListener` is also called whenever
|
||||
`onTimelineChanged` callback of `Player.Listener` is also called whenever
|
||||
the manifest is loaded. This will happen once for a on-demand content, and
|
||||
possibly many times for live content. The code snippet below shows how an app
|
||||
can do something whenever the manifest is loaded.
|
||||
|
||||
~~~
|
||||
player.addListener(
|
||||
new Player.EventListener() {
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onTimelineChanged(
|
||||
Timeline timeline, @Player.TimelineChangeReason int reason) {
|
||||
|
@ -97,7 +97,7 @@ public class CastPlayerTest {
|
||||
@Mock private CastContext mockCastContext;
|
||||
@Mock private SessionManager mockSessionManager;
|
||||
@Mock private CastSession mockCastSession;
|
||||
@Mock private Player.EventListener mockListener;
|
||||
@Mock private Player.Listener mockListener;
|
||||
@Mock private PendingResult<RemoteMediaClient.MediaChannelResult> mockPendingResult;
|
||||
|
||||
@Captor
|
||||
|
@ -89,7 +89,7 @@ public class FlacPlaybackTest {
|
||||
"audiosinkdumps/" + fileName + ".audiosink.dump");
|
||||
}
|
||||
|
||||
private static class TestPlaybackRunnable implements Player.EventListener, Runnable {
|
||||
private static class TestPlaybackRunnable implements Player.Listener, Runnable {
|
||||
|
||||
private final Context context;
|
||||
private final Uri uri;
|
||||
|
@ -28,7 +28,6 @@ import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.MediaItem;
|
||||
import com.google.android.exoplayer2.Player;
|
||||
import com.google.android.exoplayer2.Player.DiscontinuityReason;
|
||||
import com.google.android.exoplayer2.Player.EventListener;
|
||||
import com.google.android.exoplayer2.Player.TimelineChangeReason;
|
||||
import com.google.android.exoplayer2.SimpleExoPlayer;
|
||||
import com.google.android.exoplayer2.Timeline.Window;
|
||||
@ -186,7 +185,7 @@ public final class ImaPlaybackTest {
|
||||
}
|
||||
}
|
||||
|
||||
private static final class ImaHostedTest extends ExoHostedTest implements EventListener {
|
||||
private static final class ImaHostedTest extends ExoHostedTest implements Player.Listener {
|
||||
|
||||
private final Uri contentUri;
|
||||
private final DataSpec adTagDataSpec;
|
||||
|
@ -76,7 +76,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/** Handles loading and playback of a single ad tag. */
|
||||
/* package */ final class AdTagLoader implements Player.EventListener {
|
||||
/* package */ final class AdTagLoader implements Player.Listener {
|
||||
|
||||
private static final String TAG = "AdTagLoader";
|
||||
|
||||
|
@ -85,7 +85,7 @@ import java.util.Set;
|
||||
* href="https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/omsdk">IMA
|
||||
* SDK Open Measurement documentation</a> for more information.
|
||||
*/
|
||||
public final class ImaAdsLoader implements Player.EventListener, AdsLoader {
|
||||
public final class ImaAdsLoader implements Player.Listener, AdsLoader {
|
||||
|
||||
static {
|
||||
ExoPlayerLibraryInfo.registerModule("goog.exo.ima");
|
||||
@ -601,7 +601,7 @@ public final class ImaAdsLoader implements Player.EventListener, AdsLoader {
|
||||
.handlePrepareError(adGroupIndex, adIndexInAdGroup, exception);
|
||||
}
|
||||
|
||||
// Player.EventListener implementation.
|
||||
// Player.Listener implementation.
|
||||
|
||||
@Override
|
||||
public void onTimelineChanged(Timeline timeline, @Player.TimelineChangeReason int reason) {
|
||||
|
@ -27,7 +27,7 @@ import com.google.android.exoplayer2.util.ListenerSet;
|
||||
/** A fake player for testing content/ad playback. */
|
||||
/* package */ final class FakePlayer extends StubExoPlayer {
|
||||
|
||||
private final ListenerSet<EventListener> listeners;
|
||||
private final ListenerSet<Listener> listeners;
|
||||
private final Timeline.Period period;
|
||||
private final Object windowUid = new Object();
|
||||
private final Object periodUid = new Object();
|
||||
@ -185,12 +185,12 @@ import com.google.android.exoplayer2.util.ListenerSet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addListener(Player.EventListener listener) {
|
||||
public void addListener(Player.Listener listener) {
|
||||
listeners.add(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeListener(Player.EventListener listener) {
|
||||
public void removeListener(Player.Listener listener) {
|
||||
listeners.remove(listener);
|
||||
}
|
||||
|
||||
|
@ -1085,13 +1085,12 @@ public final class MediaSessionConnector {
|
||||
}
|
||||
}
|
||||
|
||||
private class ComponentListener extends MediaSessionCompat.Callback
|
||||
implements Player.EventListener {
|
||||
private class ComponentListener extends MediaSessionCompat.Callback implements Player.Listener {
|
||||
|
||||
private int currentWindowIndex;
|
||||
private int currentWindowCount;
|
||||
|
||||
// Player.EventListener implementation.
|
||||
// Player.Listener implementation.
|
||||
|
||||
@Override
|
||||
public void onEvents(Player player, Player.Events events) {
|
||||
|
@ -73,7 +73,7 @@ public class OpusPlaybackTest {
|
||||
}
|
||||
}
|
||||
|
||||
private static class TestPlaybackRunnable implements Player.EventListener, Runnable {
|
||||
private static class TestPlaybackRunnable implements Player.Listener, Runnable {
|
||||
|
||||
private final Context context;
|
||||
private final Uri uri;
|
||||
|
@ -101,7 +101,7 @@ public class VpxPlaybackTest {
|
||||
}
|
||||
}
|
||||
|
||||
private static class TestPlaybackRunnable implements Player.EventListener, Runnable {
|
||||
private static class TestPlaybackRunnable implements Player.Listener, Runnable {
|
||||
|
||||
private final Context context;
|
||||
private final Uri uri;
|
||||
|
@ -74,7 +74,10 @@ public interface Player {
|
||||
* <p>Listeners can choose to implement individual events (e.g. {@link
|
||||
* #onIsPlayingChanged(boolean)}) or {@link #onEvents(Player, Events)}, which is called after one
|
||||
* or more events occurred together.
|
||||
*
|
||||
* @deprecated Use {@link Player.Listener}.
|
||||
*/
|
||||
@Deprecated
|
||||
interface EventListener {
|
||||
|
||||
/**
|
||||
@ -1040,7 +1043,9 @@ public interface Player {
|
||||
* the player does not have a {@link Looper}, then the listener will be called on the main thread.
|
||||
*
|
||||
* @param listener The listener to register.
|
||||
* @deprecated Use {@link #addListener(Listener)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
void addListener(EventListener listener);
|
||||
|
||||
/**
|
||||
@ -1055,7 +1060,9 @@ public interface Player {
|
||||
* no longer receive events from the player.
|
||||
*
|
||||
* @param listener The listener to unregister.
|
||||
* @deprecated Use {@link #addListener(Listener)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
void removeListener(EventListener listener);
|
||||
|
||||
/**
|
||||
|
@ -66,7 +66,7 @@ public final class ClippedPlaybackTest {
|
||||
player
|
||||
.get()
|
||||
.addListener(
|
||||
new Player.EventListener() {
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlaybackStateChanged(@Player.State int state) {
|
||||
if (state == Player.STATE_ENDED) {
|
||||
@ -120,7 +120,7 @@ public final class ClippedPlaybackTest {
|
||||
player
|
||||
.get()
|
||||
.addListener(
|
||||
new Player.EventListener() {
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlaybackStateChanged(@Player.State int state) {
|
||||
if (state == Player.STATE_ENDED) {
|
||||
|
@ -66,7 +66,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
||||
* Data collector that forwards analytics events to {@link AnalyticsListener AnalyticsListeners}.
|
||||
*/
|
||||
public class AnalyticsCollector
|
||||
implements Player.EventListener,
|
||||
implements Player.Listener,
|
||||
AudioRendererEventListener,
|
||||
VideoRendererEventListener,
|
||||
MediaSourceEventListener,
|
||||
|
@ -105,10 +105,10 @@ import org.checkerframework.checker.nullness.qual.EnsuresNonNull;
|
||||
* }</pre>
|
||||
*
|
||||
* If {@code rendererTrackGroups} is null then there aren't any currently mapped tracks, and so
|
||||
* setting an override isn't possible. Note that a {@link Player.EventListener} registered on the
|
||||
* player can be used to determine when the current tracks (and therefore the mapping) changes. If
|
||||
* {@code rendererTrackGroups} is non-null then an override can be set. The next step is to query
|
||||
* the properties of the available tracks to determine the {@code groupIndex} and the {@code
|
||||
* setting an override isn't possible. Note that a {@link Player.Listener} registered on the player
|
||||
* can be used to determine when the current tracks (and therefore the mapping) changes. If {@code
|
||||
* rendererTrackGroups} is non-null then an override can be set. The next step is to query the
|
||||
* properties of the available tracks to determine the {@code groupIndex} and the {@code
|
||||
* trackIndices} within the group it that should be selected. The override can then be specified
|
||||
* using {@link ParametersBuilder#setSelectionOverride}:
|
||||
*
|
||||
|
@ -28,7 +28,7 @@ import java.util.Locale;
|
||||
* A helper class for periodically updating a {@link TextView} with debug information obtained from
|
||||
* a {@link SimpleExoPlayer}.
|
||||
*/
|
||||
public class DebugTextViewHelper implements Player.EventListener, Runnable {
|
||||
public class DebugTextViewHelper implements Player.Listener, Runnable {
|
||||
|
||||
private static final int REFRESH_INTERVAL_MS = 1000;
|
||||
|
||||
@ -75,7 +75,7 @@ public class DebugTextViewHelper implements Player.EventListener, Runnable {
|
||||
textView.removeCallbacks(this);
|
||||
}
|
||||
|
||||
// Player.EventListener implementation.
|
||||
// Player.Listener implementation.
|
||||
|
||||
@Override
|
||||
public final void onPlaybackStateChanged(@Player.State int playbackState) {
|
||||
|
@ -75,8 +75,6 @@ import androidx.annotation.Nullable;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
import com.google.android.exoplayer2.Player.DiscontinuityReason;
|
||||
import com.google.android.exoplayer2.Player.EventListener;
|
||||
import com.google.android.exoplayer2.Player.Listener;
|
||||
import com.google.android.exoplayer2.Timeline.Window;
|
||||
import com.google.android.exoplayer2.analytics.AnalyticsListener;
|
||||
import com.google.android.exoplayer2.audio.AudioAttributes;
|
||||
@ -193,7 +191,7 @@ public final class ExoPlayerTest {
|
||||
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_UNKNOWN);
|
||||
|
||||
SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build();
|
||||
Listener mockListener = mock(Listener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
player.addListener(mockListener);
|
||||
|
||||
player.setMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT));
|
||||
@ -224,7 +222,7 @@ public final class ExoPlayerTest {
|
||||
Timeline timeline = new FakeTimeline();
|
||||
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_VIDEO);
|
||||
SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build();
|
||||
Listener mockListener = mock(Listener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
player.addListener(mockListener);
|
||||
|
||||
player.setMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT));
|
||||
@ -259,26 +257,26 @@ public final class ExoPlayerTest {
|
||||
Timeline timeline = new FakeTimeline(/* windowCount= */ 3);
|
||||
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_VIDEO);
|
||||
SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build();
|
||||
EventListener mockEventListener = mock(EventListener.class);
|
||||
player.addListener(mockEventListener);
|
||||
Player.Listener mockPlayerListener = mock(Player.Listener.class);
|
||||
player.addListener(mockPlayerListener);
|
||||
|
||||
player.setMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT));
|
||||
player.prepare();
|
||||
player.play();
|
||||
runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
|
||||
InOrder inOrder = Mockito.inOrder(mockEventListener);
|
||||
InOrder inOrder = Mockito.inOrder(mockPlayerListener);
|
||||
inOrder
|
||||
.verify(mockEventListener)
|
||||
.verify(mockPlayerListener)
|
||||
.onTimelineChanged(
|
||||
argThat(noUid(new FakeMediaSource.InitialTimeline(timeline))),
|
||||
eq(Player.DISCONTINUITY_REASON_AUTO_TRANSITION));
|
||||
inOrder
|
||||
.verify(mockEventListener)
|
||||
.verify(mockPlayerListener)
|
||||
.onTimelineChanged(
|
||||
argThat(noUid(timeline)), eq(Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE));
|
||||
inOrder
|
||||
.verify(mockEventListener, times(2))
|
||||
.verify(mockPlayerListener, times(2))
|
||||
.onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_AUTO_TRANSITION));
|
||||
assertThat(renderer.getFormatsRead())
|
||||
.containsExactly(
|
||||
@ -297,26 +295,26 @@ public final class ExoPlayerTest {
|
||||
new FakeTimeline(new TimelineWindowDefinition(/* periodCount= */ 100, /* id= */ 0));
|
||||
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_VIDEO);
|
||||
SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build();
|
||||
EventListener mockEventListener = mock(EventListener.class);
|
||||
player.addListener(mockEventListener);
|
||||
Player.Listener mockPlayerListener = mock(Player.Listener.class);
|
||||
player.addListener(mockPlayerListener);
|
||||
|
||||
player.setMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT));
|
||||
player.prepare();
|
||||
player.play();
|
||||
runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
|
||||
InOrder inOrder = inOrder(mockEventListener);
|
||||
InOrder inOrder = inOrder(mockPlayerListener);
|
||||
inOrder
|
||||
.verify(mockEventListener)
|
||||
.verify(mockPlayerListener)
|
||||
.onTimelineChanged(
|
||||
argThat(noUid(placeholderTimeline)),
|
||||
eq(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED));
|
||||
inOrder
|
||||
.verify(mockEventListener)
|
||||
.verify(mockPlayerListener)
|
||||
.onTimelineChanged(
|
||||
argThat(noUid(timeline)), eq(Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE));
|
||||
inOrder
|
||||
.verify(mockEventListener, times(99))
|
||||
.verify(mockPlayerListener, times(99))
|
||||
.onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_AUTO_TRANSITION));
|
||||
assertThat(renderer.getFormatsRead()).hasSize(100);
|
||||
assertThat(renderer.sampleBufferReadCount).isEqualTo(100);
|
||||
@ -379,8 +377,8 @@ public final class ExoPlayerTest {
|
||||
};
|
||||
SimpleExoPlayer player =
|
||||
new TestExoPlayerBuilder(context).setRenderers(videoRenderer, audioRenderer).build();
|
||||
EventListener mockEventListener = mock(EventListener.class);
|
||||
player.addListener(mockEventListener);
|
||||
Player.Listener mockPlayerListener = mock(Player.Listener.class);
|
||||
player.addListener(mockPlayerListener);
|
||||
|
||||
player.setMediaSource(
|
||||
new FakeMediaSource(
|
||||
@ -389,18 +387,18 @@ public final class ExoPlayerTest {
|
||||
player.play();
|
||||
runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
|
||||
InOrder inOrder = inOrder(mockEventListener);
|
||||
InOrder inOrder = inOrder(mockPlayerListener);
|
||||
inOrder
|
||||
.verify(mockEventListener)
|
||||
.verify(mockPlayerListener)
|
||||
.onTimelineChanged(
|
||||
argThat(noUid(new FakeMediaSource.InitialTimeline(timeline))),
|
||||
eq(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED));
|
||||
inOrder
|
||||
.verify(mockEventListener)
|
||||
.verify(mockPlayerListener)
|
||||
.onTimelineChanged(
|
||||
argThat(noUid(timeline)), eq(Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE));
|
||||
inOrder
|
||||
.verify(mockEventListener, times(2))
|
||||
.verify(mockPlayerListener, times(2))
|
||||
.onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_AUTO_TRANSITION));
|
||||
assertThat(audioRenderer.positionResetCount).isEqualTo(1);
|
||||
assertThat(videoRenderer.isEnded).isTrue();
|
||||
@ -428,8 +426,8 @@ public final class ExoPlayerTest {
|
||||
Timeline thirdTimeline = new FakeTimeline();
|
||||
MediaSource thirdSource = new FakeMediaSource(thirdTimeline, ExoPlayerTestRunner.VIDEO_FORMAT);
|
||||
SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build();
|
||||
EventListener mockEventListener = mock(EventListener.class);
|
||||
player.addListener(mockEventListener);
|
||||
Player.Listener mockPlayerListener = mock(Player.Listener.class);
|
||||
player.addListener(mockPlayerListener);
|
||||
|
||||
player.setMediaSource(firstSource);
|
||||
player.prepare();
|
||||
@ -444,38 +442,38 @@ public final class ExoPlayerTest {
|
||||
// prepared, it immediately exposed a placeholder timeline, but the source info refresh from the
|
||||
// second source was suppressed as we replace it with the third source before the update
|
||||
// arrives.
|
||||
InOrder inOrder = inOrder(mockEventListener);
|
||||
InOrder inOrder = inOrder(mockPlayerListener);
|
||||
inOrder
|
||||
.verify(mockEventListener)
|
||||
.verify(mockPlayerListener)
|
||||
.onTimelineChanged(
|
||||
argThat(noUid(placeholderTimeline)),
|
||||
eq(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED));
|
||||
inOrder
|
||||
.verify(mockEventListener)
|
||||
.verify(mockPlayerListener)
|
||||
.onTimelineChanged(
|
||||
argThat(noUid(firstTimeline)), eq(Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE));
|
||||
inOrder
|
||||
.verify(mockEventListener)
|
||||
.verify(mockPlayerListener)
|
||||
.onTimelineChanged(
|
||||
argThat(noUid(placeholderTimeline)),
|
||||
eq(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED));
|
||||
inOrder
|
||||
.verify(mockEventListener)
|
||||
.verify(mockPlayerListener)
|
||||
.onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_REMOVE));
|
||||
inOrder
|
||||
.verify(mockEventListener)
|
||||
.verify(mockPlayerListener)
|
||||
.onTimelineChanged(
|
||||
argThat(noUid(placeholderTimeline)),
|
||||
eq(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED));
|
||||
inOrder
|
||||
.verify(mockEventListener)
|
||||
.verify(mockPlayerListener)
|
||||
.onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_REMOVE));
|
||||
inOrder
|
||||
.verify(mockEventListener)
|
||||
.verify(mockPlayerListener)
|
||||
.onTimelineChanged(
|
||||
argThat(noUid(thirdTimeline)), eq(Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE));
|
||||
inOrder
|
||||
.verify(mockEventListener)
|
||||
.verify(mockPlayerListener)
|
||||
.onTracksChanged(
|
||||
eq(new TrackGroupArray(new TrackGroup(ExoPlayerTestRunner.VIDEO_FORMAT))), any());
|
||||
assertThat(renderer.isEnded).isTrue();
|
||||
@ -1691,7 +1689,7 @@ public final class ExoPlayerTest {
|
||||
@Test
|
||||
public void seekAndReprepareAfterPlaybackError_keepsSeekPositionAndTimeline() throws Exception {
|
||||
SimpleExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
Player.EventListener mockListener = mock(Player.EventListener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
player.addListener(mockListener);
|
||||
FakeMediaSource fakeMediaSource = new FakeMediaSource();
|
||||
player.setMediaSource(fakeMediaSource);
|
||||
@ -2853,23 +2851,23 @@ public final class ExoPlayerTest {
|
||||
// We add two listeners to the player. The first stops the player as soon as it's ready and both
|
||||
// record the state change events they receive.
|
||||
final AtomicReference<Player> playerReference = new AtomicReference<>();
|
||||
final List<Integer> eventListener1States = new ArrayList<>();
|
||||
final List<Integer> eventListener2States = new ArrayList<>();
|
||||
final EventListener eventListener1 =
|
||||
new EventListener() {
|
||||
final List<Integer> playerListener1States = new ArrayList<>();
|
||||
final List<Integer> playerListener2States = new ArrayList<>();
|
||||
final Player.Listener playerListener1 =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlaybackStateChanged(@Player.State int playbackState) {
|
||||
eventListener1States.add(playbackState);
|
||||
playerListener1States.add(playbackState);
|
||||
if (playbackState == Player.STATE_READY) {
|
||||
playerReference.get().stop(/* reset= */ true);
|
||||
}
|
||||
}
|
||||
};
|
||||
final EventListener eventListener2 =
|
||||
new EventListener() {
|
||||
final Player.Listener playerListener2 =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlaybackStateChanged(@Player.State int playbackState) {
|
||||
eventListener2States.add(playbackState);
|
||||
playerListener2States.add(playbackState);
|
||||
}
|
||||
};
|
||||
ActionSchedule actionSchedule =
|
||||
@ -2879,8 +2877,8 @@ public final class ExoPlayerTest {
|
||||
@Override
|
||||
public void run(SimpleExoPlayer player) {
|
||||
playerReference.set(player);
|
||||
player.addListener(eventListener1);
|
||||
player.addListener(eventListener2);
|
||||
player.addListener(playerListener1);
|
||||
player.addListener(playerListener2);
|
||||
}
|
||||
})
|
||||
.build();
|
||||
@ -2890,10 +2888,10 @@ public final class ExoPlayerTest {
|
||||
.start()
|
||||
.blockUntilEnded(TIMEOUT_MS);
|
||||
|
||||
assertThat(eventListener1States)
|
||||
assertThat(playerListener1States)
|
||||
.containsExactly(Player.STATE_BUFFERING, Player.STATE_READY, Player.STATE_IDLE)
|
||||
.inOrder();
|
||||
assertThat(eventListener2States)
|
||||
assertThat(playerListener2States)
|
||||
.containsExactly(Player.STATE_BUFFERING, Player.STATE_READY, Player.STATE_IDLE)
|
||||
.inOrder();
|
||||
}
|
||||
@ -2903,15 +2901,15 @@ public final class ExoPlayerTest {
|
||||
// The listener stops the player as soon as it's ready (which should report a timeline and state
|
||||
// change) and sets playWhenReady to false when the timeline callback is received.
|
||||
final AtomicReference<Player> playerReference = new AtomicReference<>();
|
||||
final List<Boolean> eventListenerPlayWhenReady = new ArrayList<>();
|
||||
final List<Integer> eventListenerStates = new ArrayList<>();
|
||||
final List<Boolean> playerListenerPlayWhenReady = new ArrayList<>();
|
||||
final List<Integer> playerListenerStates = new ArrayList<>();
|
||||
List<Integer> sequence = new ArrayList<>();
|
||||
final EventListener eventListener =
|
||||
new EventListener() {
|
||||
final Player.Listener playerListener =
|
||||
new Player.Listener() {
|
||||
|
||||
@Override
|
||||
public void onPlaybackStateChanged(@Player.State int playbackState) {
|
||||
eventListenerStates.add(playbackState);
|
||||
playerListenerStates.add(playbackState);
|
||||
if (playbackState == Player.STATE_READY) {
|
||||
playerReference.get().stop(/* reset= */ true);
|
||||
sequence.add(0);
|
||||
@ -2929,7 +2927,7 @@ public final class ExoPlayerTest {
|
||||
@Override
|
||||
public void onPlayWhenReadyChanged(
|
||||
boolean playWhenReady, @Player.PlayWhenReadyChangeReason int reason) {
|
||||
eventListenerPlayWhenReady.add(playWhenReady);
|
||||
playerListenerPlayWhenReady.add(playWhenReady);
|
||||
sequence.add(2);
|
||||
}
|
||||
};
|
||||
@ -2940,7 +2938,7 @@ public final class ExoPlayerTest {
|
||||
@Override
|
||||
public void run(SimpleExoPlayer player) {
|
||||
playerReference.set(player);
|
||||
player.addListener(eventListener);
|
||||
player.addListener(playerListener);
|
||||
}
|
||||
})
|
||||
.build();
|
||||
@ -2950,10 +2948,10 @@ public final class ExoPlayerTest {
|
||||
.start()
|
||||
.blockUntilEnded(TIMEOUT_MS);
|
||||
|
||||
assertThat(eventListenerStates)
|
||||
assertThat(playerListenerStates)
|
||||
.containsExactly(Player.STATE_BUFFERING, Player.STATE_READY, Player.STATE_IDLE)
|
||||
.inOrder();
|
||||
assertThat(eventListenerPlayWhenReady).containsExactly(false).inOrder();
|
||||
assertThat(playerListenerPlayWhenReady).containsExactly(false).inOrder();
|
||||
assertThat(sequence).containsExactly(0, 1, 2).inOrder();
|
||||
}
|
||||
|
||||
@ -2963,8 +2961,8 @@ public final class ExoPlayerTest {
|
||||
Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 3);
|
||||
final AtomicReference<ExoPlayer> playerReference = new AtomicReference<>();
|
||||
FakeMediaSource secondMediaSource = new FakeMediaSource(secondTimeline);
|
||||
final EventListener eventListener =
|
||||
new EventListener() {
|
||||
final Player.Listener playerListener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlaybackStateChanged(int state) {
|
||||
if (state == Player.STATE_IDLE) {
|
||||
@ -2979,7 +2977,7 @@ public final class ExoPlayerTest {
|
||||
@Override
|
||||
public void run(SimpleExoPlayer player) {
|
||||
playerReference.set(player);
|
||||
player.addListener(eventListener);
|
||||
player.addListener(playerListener);
|
||||
}
|
||||
})
|
||||
// Ensure there are no further pending callbacks.
|
||||
@ -3023,8 +3021,8 @@ public final class ExoPlayerTest {
|
||||
AtomicLong positionAtDiscontinuityMs = new AtomicLong(C.TIME_UNSET);
|
||||
AtomicLong clockAtStartMs = new AtomicLong(C.TIME_UNSET);
|
||||
AtomicLong clockAtDiscontinuityMs = new AtomicLong(C.TIME_UNSET);
|
||||
EventListener eventListener =
|
||||
new EventListener() {
|
||||
Player.Listener playerListener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlaybackStateChanged(@Player.State int playbackState) {
|
||||
if (playbackState == Player.STATE_READY && clockAtStartMs.get() == C.TIME_UNSET) {
|
||||
@ -3047,7 +3045,7 @@ public final class ExoPlayerTest {
|
||||
@Override
|
||||
public void run(SimpleExoPlayer player) {
|
||||
playerReference.set(player);
|
||||
player.addListener(eventListener);
|
||||
player.addListener(playerListener);
|
||||
}
|
||||
})
|
||||
.pause()
|
||||
@ -3099,8 +3097,8 @@ public final class ExoPlayerTest {
|
||||
.setMediaSources(mediaSource)
|
||||
.setSupportedFormats(ExoPlayerTestRunner.VIDEO_FORMAT, ExoPlayerTestRunner.AUDIO_FORMAT)
|
||||
.setActionSchedule(actionSchedule)
|
||||
.setEventListener(
|
||||
new EventListener() {
|
||||
.setPlayerListener(
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onTracksChanged(
|
||||
TrackGroupArray trackGroups, TrackSelectionArray trackSelections) {
|
||||
@ -3253,8 +3251,8 @@ public final class ExoPlayerTest {
|
||||
windowDurationUs));
|
||||
AtomicReference<Player> playerReference = new AtomicReference<>();
|
||||
AtomicLong bufferedPositionAtFirstDiscontinuityMs = new AtomicLong(C.TIME_UNSET);
|
||||
EventListener eventListener =
|
||||
new EventListener() {
|
||||
Player.Listener playerListener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPositionDiscontinuity(@DiscontinuityReason int reason) {
|
||||
if (reason == Player.DISCONTINUITY_REASON_AUTO_TRANSITION) {
|
||||
@ -3272,7 +3270,7 @@ public final class ExoPlayerTest {
|
||||
@Override
|
||||
public void run(SimpleExoPlayer player) {
|
||||
playerReference.set(player);
|
||||
player.addListener(eventListener);
|
||||
player.addListener(playerListener);
|
||||
}
|
||||
})
|
||||
.pause()
|
||||
@ -3307,8 +3305,8 @@ public final class ExoPlayerTest {
|
||||
FakeMediaSource fakeMediaSource = new FakeMediaSource(/* timeline= */ null);
|
||||
AtomicReference<Player> playerReference = new AtomicReference<>();
|
||||
AtomicLong contentStartPositionMs = new AtomicLong(C.TIME_UNSET);
|
||||
EventListener eventListener =
|
||||
new EventListener() {
|
||||
Player.Listener playerListener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPositionDiscontinuity(@DiscontinuityReason int reason) {
|
||||
if (reason == Player.DISCONTINUITY_REASON_AUTO_TRANSITION) {
|
||||
@ -3323,7 +3321,7 @@ public final class ExoPlayerTest {
|
||||
@Override
|
||||
public void run(SimpleExoPlayer player) {
|
||||
playerReference.set(player);
|
||||
player.addListener(eventListener);
|
||||
player.addListener(playerListener);
|
||||
}
|
||||
})
|
||||
.seek(/* positionMs= */ 5_000)
|
||||
@ -3360,8 +3358,8 @@ public final class ExoPlayerTest {
|
||||
FakeMediaSource fakeMediaSource = new FakeMediaSource(/* timeline= */ null);
|
||||
AtomicReference<Player> playerReference = new AtomicReference<>();
|
||||
AtomicLong contentStartPositionMs = new AtomicLong(C.TIME_UNSET);
|
||||
EventListener eventListener =
|
||||
new EventListener() {
|
||||
Player.Listener playerListener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPositionDiscontinuity(@DiscontinuityReason int reason) {
|
||||
if (reason == Player.DISCONTINUITY_REASON_AUTO_TRANSITION) {
|
||||
@ -3376,7 +3374,7 @@ public final class ExoPlayerTest {
|
||||
@Override
|
||||
public void run(SimpleExoPlayer player) {
|
||||
playerReference.set(player);
|
||||
player.addListener(eventListener);
|
||||
player.addListener(playerListener);
|
||||
}
|
||||
})
|
||||
.waitForPlaybackState(Player.STATE_BUFFERING)
|
||||
@ -3419,8 +3417,8 @@ public final class ExoPlayerTest {
|
||||
.play()
|
||||
.build();
|
||||
List<Float> reportedPlaybackSpeeds = new ArrayList<>();
|
||||
EventListener listener =
|
||||
new EventListener() {
|
||||
Player.Listener listener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlaybackParametersChanged(PlaybackParameters playbackParameters) {
|
||||
reportedPlaybackSpeeds.add(playbackParameters.speed);
|
||||
@ -3428,7 +3426,7 @@ public final class ExoPlayerTest {
|
||||
};
|
||||
new ExoPlayerTestRunner.Builder(context)
|
||||
.setActionSchedule(actionSchedule)
|
||||
.setEventListener(listener)
|
||||
.setPlayerListener(listener)
|
||||
.build()
|
||||
.start()
|
||||
.blockUntilEnded(TIMEOUT_MS);
|
||||
@ -3466,8 +3464,8 @@ public final class ExoPlayerTest {
|
||||
.play()
|
||||
.build();
|
||||
List<PlaybackParameters> reportedPlaybackParameters = new ArrayList<>();
|
||||
EventListener listener =
|
||||
new EventListener() {
|
||||
Player.Listener listener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlaybackParametersChanged(PlaybackParameters playbackParameters) {
|
||||
reportedPlaybackParameters.add(playbackParameters);
|
||||
@ -3477,7 +3475,7 @@ public final class ExoPlayerTest {
|
||||
.setSupportedFormats(ExoPlayerTestRunner.AUDIO_FORMAT)
|
||||
.setRenderers(renderer)
|
||||
.setActionSchedule(actionSchedule)
|
||||
.setEventListener(listener)
|
||||
.setPlayerListener(listener)
|
||||
.build()
|
||||
.start()
|
||||
.blockUntilEnded(TIMEOUT_MS);
|
||||
@ -3501,8 +3499,8 @@ public final class ExoPlayerTest {
|
||||
.play()
|
||||
.build();
|
||||
AtomicBoolean seenPlaybackSuppression = new AtomicBoolean();
|
||||
EventListener listener =
|
||||
new EventListener() {
|
||||
Player.Listener listener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlaybackSuppressionReasonChanged(
|
||||
@Player.PlaybackSuppressionReason int playbackSuppressionReason) {
|
||||
@ -3511,7 +3509,7 @@ public final class ExoPlayerTest {
|
||||
};
|
||||
new ExoPlayerTestRunner.Builder(context)
|
||||
.setActionSchedule(actionSchedule)
|
||||
.setEventListener(listener)
|
||||
.setPlayerListener(listener)
|
||||
.build()
|
||||
.start()
|
||||
.blockUntilEnded(TIMEOUT_MS);
|
||||
@ -3533,8 +3531,8 @@ public final class ExoPlayerTest {
|
||||
.executeRunnable(playerStateGrabber)
|
||||
.build();
|
||||
AtomicBoolean seenPlaybackSuppression = new AtomicBoolean();
|
||||
EventListener listener =
|
||||
new EventListener() {
|
||||
Player.Listener listener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlaybackSuppressionReasonChanged(
|
||||
@Player.PlaybackSuppressionReason int playbackSuppressionReason) {
|
||||
@ -3543,7 +3541,7 @@ public final class ExoPlayerTest {
|
||||
};
|
||||
new ExoPlayerTestRunner.Builder(context)
|
||||
.setActionSchedule(actionSchedule)
|
||||
.setEventListener(listener)
|
||||
.setPlayerListener(listener)
|
||||
.build()
|
||||
.start()
|
||||
.blockUntilActionScheduleFinished(TIMEOUT_MS);
|
||||
@ -7443,15 +7441,15 @@ public final class ExoPlayerTest {
|
||||
.waitForPlaybackState(Player.STATE_ENDED)
|
||||
.build();
|
||||
List<Boolean> onIsPlayingChanges = new ArrayList<>();
|
||||
Player.EventListener eventListener =
|
||||
new Player.EventListener() {
|
||||
Player.Listener playerListener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onIsPlayingChanged(boolean isPlaying) {
|
||||
onIsPlayingChanges.add(isPlaying);
|
||||
}
|
||||
};
|
||||
new ExoPlayerTestRunner.Builder(context)
|
||||
.setEventListener(eventListener)
|
||||
.setPlayerListener(playerListener)
|
||||
.setActionSchedule(actionSchedule)
|
||||
.build()
|
||||
.start()
|
||||
@ -7468,8 +7466,8 @@ public final class ExoPlayerTest {
|
||||
String isPlayingChange1 = "isPlayingChange1";
|
||||
String isPlayingChange2 = "isPlayingChange2";
|
||||
ArrayList<String> events = new ArrayList<>();
|
||||
Player.EventListener eventListener1 =
|
||||
new Player.EventListener() {
|
||||
Player.Listener playerListener1 =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlayWhenReadyChanged(boolean playWhenReady, int reason) {
|
||||
events.add(playWhenReadyChange1);
|
||||
@ -7480,8 +7478,8 @@ public final class ExoPlayerTest {
|
||||
events.add(isPlayingChange1);
|
||||
}
|
||||
};
|
||||
Player.EventListener eventListener2 =
|
||||
new Player.EventListener() {
|
||||
Player.Listener playerListener2 =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlayWhenReadyChanged(boolean playWhenReady, int reason) {
|
||||
events.add(playWhenReadyChange2);
|
||||
@ -7499,8 +7497,8 @@ public final class ExoPlayerTest {
|
||||
new PlayerRunnable() {
|
||||
@Override
|
||||
public void run(SimpleExoPlayer player) {
|
||||
player.addListener(eventListener1);
|
||||
player.addListener(eventListener2);
|
||||
player.addListener(playerListener1);
|
||||
player.addListener(playerListener2);
|
||||
}
|
||||
})
|
||||
.waitForPlaybackState(Player.STATE_READY)
|
||||
@ -7677,8 +7675,8 @@ public final class ExoPlayerTest {
|
||||
.build();
|
||||
List<MediaItem> currentMediaItems = new ArrayList<>();
|
||||
List<MediaItem> mediaItemsInTimeline = new ArrayList<>();
|
||||
Player.EventListener eventListener =
|
||||
new Player.EventListener() {
|
||||
Player.Listener playerListener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onTimelineChanged(Timeline timeline, int reason) {
|
||||
if (reason != Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED) {
|
||||
@ -7699,7 +7697,7 @@ public final class ExoPlayerTest {
|
||||
}
|
||||
};
|
||||
new ExoPlayerTestRunner.Builder(context)
|
||||
.setEventListener(eventListener)
|
||||
.setPlayerListener(playerListener)
|
||||
.setActionSchedule(actionSchedule)
|
||||
.setMediaSources(fakeMediaSource1, fakeMediaSource2, fakeMediaSource3)
|
||||
.build()
|
||||
@ -8154,7 +8152,7 @@ public final class ExoPlayerTest {
|
||||
Player.Commands commandsWithSeekToNextAndPrevious =
|
||||
createWithDefaultCommands(
|
||||
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM);
|
||||
Player.EventListener mockListener = mock(Player.EventListener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
player.addListener(mockListener);
|
||||
|
||||
@ -8189,7 +8187,7 @@ public final class ExoPlayerTest {
|
||||
Player.Commands commandsWithSeekToNextAndPrevious =
|
||||
createWithDefaultCommands(
|
||||
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM);
|
||||
Player.EventListener mockListener = mock(Player.EventListener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
player.addListener(mockListener);
|
||||
|
||||
@ -8218,7 +8216,7 @@ public final class ExoPlayerTest {
|
||||
|
||||
@Test
|
||||
public void seekTo_sameWindow_doesNotNotifyAvailableCommandsChanged() {
|
||||
Player.EventListener mockListener = mock(Player.EventListener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
player.addListener(mockListener);
|
||||
|
||||
@ -8243,7 +8241,7 @@ public final class ExoPlayerTest {
|
||||
COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM,
|
||||
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM,
|
||||
COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM);
|
||||
Player.EventListener mockListener = mock(Player.EventListener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
player.addListener(mockListener);
|
||||
|
||||
@ -8281,7 +8279,7 @@ public final class ExoPlayerTest {
|
||||
public void addMediaSource_atTheEnd_notifiesAvailableCommandsChanged() {
|
||||
Player.Commands commandsWithSeekToNext =
|
||||
createWithDefaultCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM);
|
||||
Player.EventListener mockListener = mock(Player.EventListener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
player.addListener(mockListener);
|
||||
|
||||
@ -8301,7 +8299,7 @@ public final class ExoPlayerTest {
|
||||
public void addMediaSource_atTheStart_notifiesAvailableCommandsChanged() {
|
||||
Player.Commands commandsWithSeekToPrevious =
|
||||
createWithDefaultCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM);
|
||||
Player.EventListener mockListener = mock(Player.EventListener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
player.addListener(mockListener);
|
||||
|
||||
@ -8322,7 +8320,7 @@ public final class ExoPlayerTest {
|
||||
Player.Commands commandsWithSeekToNext =
|
||||
createWithDefaultCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM);
|
||||
Player.Commands commandsWithoutSeek = createWithDefaultCommands();
|
||||
Player.EventListener mockListener = mock(Player.EventListener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
player.addListener(mockListener);
|
||||
|
||||
@ -8348,7 +8346,7 @@ public final class ExoPlayerTest {
|
||||
Player.Commands commandsWithSeekToPrevious =
|
||||
createWithDefaultCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM);
|
||||
Player.Commands commandsWithoutSeek = createWithDefaultCommands();
|
||||
Player.EventListener mockListener = mock(Player.EventListener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
player.addListener(mockListener);
|
||||
|
||||
@ -8375,7 +8373,7 @@ public final class ExoPlayerTest {
|
||||
Player.Commands commandsWithSeekToNext =
|
||||
createWithDefaultCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM);
|
||||
Player.Commands commandsWithoutSeek = createWithDefaultCommands();
|
||||
Player.EventListener mockListener = mock(Player.EventListener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
player.addListener(mockListener);
|
||||
|
||||
@ -8394,7 +8392,7 @@ public final class ExoPlayerTest {
|
||||
Player.Commands commandsWithSeekToNextAndPrevious =
|
||||
createWithDefaultCommands(
|
||||
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM);
|
||||
Player.EventListener mockListener = mock(Player.EventListener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
player.addListener(mockListener);
|
||||
|
||||
@ -8409,7 +8407,7 @@ public final class ExoPlayerTest {
|
||||
|
||||
@Test
|
||||
public void setRepeatMode_one_doesNotNotifyAvailableCommandsChanged() {
|
||||
Player.EventListener mockListener = mock(Player.EventListener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
player.addListener(mockListener);
|
||||
|
||||
@ -8424,7 +8422,7 @@ public final class ExoPlayerTest {
|
||||
createWithDefaultCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM);
|
||||
Player.Commands commandsWithSeekToPrevious =
|
||||
createWithDefaultCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM);
|
||||
Player.EventListener mockListener = mock(Player.EventListener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
player.addListener(mockListener);
|
||||
MediaSource mediaSource =
|
||||
@ -8739,7 +8737,7 @@ public final class ExoPlayerTest {
|
||||
/* description= */ "Audio",
|
||||
/* value= */ "Audio track name")))
|
||||
.build();
|
||||
EventListener eventListener = mock(EventListener.class);
|
||||
Player.Listener playerListener = mock(Player.Listener.class);
|
||||
Timeline fakeTimeline =
|
||||
new FakeTimeline(
|
||||
new TimelineWindowDefinition(
|
||||
@ -8747,7 +8745,7 @@ public final class ExoPlayerTest {
|
||||
SimpleExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
|
||||
player.setMediaSource(new FakeMediaSource(fakeTimeline, videoFormat, audioFormat));
|
||||
player.addListener(eventListener);
|
||||
player.addListener(playerListener);
|
||||
player.prepare();
|
||||
player.play();
|
||||
runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
@ -8755,7 +8753,7 @@ public final class ExoPlayerTest {
|
||||
player.release();
|
||||
|
||||
assertThat(metadata).containsExactly(videoFormat.metadata, audioFormat.metadata).inOrder();
|
||||
verify(eventListener)
|
||||
verify(playerListener)
|
||||
.onStaticMetadataChanged(ImmutableList.of(videoFormat.metadata, audioFormat.metadata));
|
||||
}
|
||||
|
||||
@ -8764,7 +8762,7 @@ public final class ExoPlayerTest {
|
||||
throws Exception {
|
||||
Format videoFormat = new Format.Builder().setSampleMimeType(MimeTypes.VIDEO_H264).build();
|
||||
Format audioFormat = new Format.Builder().setSampleMimeType(MimeTypes.AUDIO_AAC).build();
|
||||
EventListener eventListener = mock(EventListener.class);
|
||||
Player.Listener playerListener = mock(Player.Listener.class);
|
||||
Timeline fakeTimeline =
|
||||
new FakeTimeline(
|
||||
new TimelineWindowDefinition(
|
||||
@ -8772,7 +8770,7 @@ public final class ExoPlayerTest {
|
||||
SimpleExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
|
||||
player.setMediaSource(new FakeMediaSource(fakeTimeline, videoFormat, audioFormat));
|
||||
player.addListener(eventListener);
|
||||
player.addListener(playerListener);
|
||||
player.prepare();
|
||||
player.play();
|
||||
runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
@ -8780,7 +8778,7 @@ public final class ExoPlayerTest {
|
||||
player.release();
|
||||
|
||||
assertThat(metadata).isEmpty();
|
||||
verify(eventListener, never()).onStaticMetadataChanged(any());
|
||||
verify(playerListener, never()).onStaticMetadataChanged(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -8806,7 +8804,7 @@ public final class ExoPlayerTest {
|
||||
/* windowOffsetInFirstPeriodUs= */ C.msToUs(windowStartUnixTimeMs),
|
||||
AdPlaybackState.NONE,
|
||||
new MediaItem.Builder().setUri(Uri.EMPTY).setLiveTargetOffsetMs(9_000).build()));
|
||||
Player.EventListener mockListener = mock(Player.EventListener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
player.addListener(mockListener);
|
||||
player.pause();
|
||||
player.setMediaSource(new FakeMediaSource(timeline));
|
||||
@ -8975,7 +8973,7 @@ public final class ExoPlayerTest {
|
||||
public void playerIdle_withSetPlaybackSpeed_usesPlaybackParameterSpeedWithPitchUnchanged() {
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
player.setPlaybackParameters(new PlaybackParameters(/* speed= */ 1, /* pitch= */ 2));
|
||||
Player.EventListener mockListener = mock(Player.EventListener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
player.addListener(mockListener);
|
||||
player.prepare();
|
||||
|
||||
@ -9009,7 +9007,7 @@ public final class ExoPlayerTest {
|
||||
/* windowOffsetInFirstPeriodUs= */ C.msToUs(windowStartUnixTimeMs),
|
||||
AdPlaybackState.NONE,
|
||||
new MediaItem.Builder().setUri(Uri.EMPTY).setLiveTargetOffsetMs(9_000).build()));
|
||||
Player.EventListener mockListener = mock(Player.EventListener.class);
|
||||
Player.Listener mockListener = mock(Player.Listener.class);
|
||||
player.addListener(mockListener);
|
||||
player.pause();
|
||||
player.setMediaSource(new FakeMediaSource(timeline));
|
||||
@ -9269,7 +9267,7 @@ public final class ExoPlayerTest {
|
||||
@Test
|
||||
public void onEvents_correspondToListenerCalls() throws Exception {
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
EventListener listener = mock(EventListener.class);
|
||||
Player.Listener listener = mock(Player.Listener.class);
|
||||
player.addListener(listener);
|
||||
Format formatWithStaticMetadata =
|
||||
new Format.Builder()
|
||||
@ -9297,7 +9295,7 @@ public final class ExoPlayerTest {
|
||||
|
||||
// Set values recursively.
|
||||
player.addListener(
|
||||
new EventListener() {
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onRepeatModeChanged(int repeatMode) {
|
||||
player.setShuffleModeEnabled(true);
|
||||
@ -9359,7 +9357,7 @@ public final class ExoPlayerTest {
|
||||
@Test
|
||||
public void play_withPreMidAndPostRollAd_callsOnDiscontinuityCorrectly() throws Exception {
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
EventListener listener = mock(EventListener.class);
|
||||
Player.Listener listener = mock(Player.Listener.class);
|
||||
player.addListener(listener);
|
||||
AdPlaybackState adPlaybackState =
|
||||
FakeTimeline.createAdPlaybackState(
|
||||
@ -9497,7 +9495,7 @@ public final class ExoPlayerTest {
|
||||
@Test
|
||||
public void seekTo_seekOverMidRoll_callsOnDiscontinuityCorrectly() throws Exception {
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
EventListener listener = mock(EventListener.class);
|
||||
Player.Listener listener = mock(Player.Listener.class);
|
||||
player.addListener(listener);
|
||||
AdPlaybackState adPlaybackState =
|
||||
FakeTimeline.createAdPlaybackState(
|
||||
@ -9586,7 +9584,7 @@ public final class ExoPlayerTest {
|
||||
@Test
|
||||
public void play_multiItemPlaylistWidthAds_callsOnDiscontinuityCorrectly() throws Exception {
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
EventListener listener = mock(EventListener.class);
|
||||
Player.Listener listener = mock(Player.Listener.class);
|
||||
player.addListener(listener);
|
||||
AdPlaybackState postRollAdPlaybackState =
|
||||
FakeTimeline.createAdPlaybackState(
|
||||
@ -9744,7 +9742,7 @@ public final class ExoPlayerTest {
|
||||
/* isDynamic= */ false,
|
||||
/* durationUs= */ 15 * C.MICROS_PER_SECOND)));
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
EventListener listener = mock(EventListener.class);
|
||||
Player.Listener listener = mock(Player.Listener.class);
|
||||
player.addListener(listener);
|
||||
player.setMediaSource(
|
||||
new FakeMediaSource(
|
||||
@ -9790,7 +9788,7 @@ public final class ExoPlayerTest {
|
||||
public void removeMediaItems_removesPlayingPeriod_callsOnPositionDiscontinuity()
|
||||
throws Exception {
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
EventListener listener = mock(EventListener.class);
|
||||
Player.Listener listener = mock(Player.Listener.class);
|
||||
player.addListener(listener);
|
||||
player.setMediaSources(
|
||||
Lists.newArrayList(
|
||||
@ -9870,7 +9868,7 @@ public final class ExoPlayerTest {
|
||||
concatenatingMediaSourceRemoveMediaSource_removesPlayingPeriod_callsOnPositionDiscontinuity()
|
||||
throws Exception {
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
EventListener listener = mock(EventListener.class);
|
||||
Player.Listener listener = mock(Player.Listener.class);
|
||||
player.addListener(listener);
|
||||
ConcatenatingMediaSource concatenatingMediaSource =
|
||||
new ConcatenatingMediaSource(
|
||||
@ -9943,7 +9941,7 @@ public final class ExoPlayerTest {
|
||||
concatenatingMediaSourceRemoveMediaSourceWithSeek_overridesRemoval_callsOnPositionDiscontinuity()
|
||||
throws Exception {
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
EventListener listener = mock(EventListener.class);
|
||||
Player.Listener listener = mock(Player.Listener.class);
|
||||
player.addListener(listener);
|
||||
ConcatenatingMediaSource concatenatingMediaSource =
|
||||
new ConcatenatingMediaSource(
|
||||
@ -10023,7 +10021,7 @@ public final class ExoPlayerTest {
|
||||
@Test
|
||||
public void seekTo_callsOnPositionDiscontinuity() throws Exception {
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
EventListener listener = mock(EventListener.class);
|
||||
Player.Listener listener = mock(Player.Listener.class);
|
||||
player.addListener(listener);
|
||||
player.setMediaSources(Lists.newArrayList(new FakeMediaSource(), new FakeMediaSource()));
|
||||
|
||||
@ -10066,7 +10064,7 @@ public final class ExoPlayerTest {
|
||||
@Test
|
||||
public void seekTo_whenTimelineEmpty_callsOnPositionDiscontinuity() {
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
EventListener listener = mock(EventListener.class);
|
||||
Player.Listener listener = mock(Player.Listener.class);
|
||||
player.addListener(listener);
|
||||
|
||||
player.seekTo(/* positionMs= */ 7 * C.MILLIS_PER_SECOND);
|
||||
@ -10117,7 +10115,7 @@ public final class ExoPlayerTest {
|
||||
@Test
|
||||
public void stop_doesNotCallOnPositionDiscontinuity() throws Exception {
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
EventListener listener = mock(EventListener.class);
|
||||
Player.Listener listener = mock(Player.Listener.class);
|
||||
player.addListener(listener);
|
||||
player.setMediaSource(new FakeMediaSource());
|
||||
|
||||
@ -10135,7 +10133,7 @@ public final class ExoPlayerTest {
|
||||
@Test
|
||||
public void stop_withResetRemovesPlayingPeriod_callsOnPositionDiscontinuity() throws Exception {
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
EventListener listener = mock(EventListener.class);
|
||||
Player.Listener listener = mock(Player.Listener.class);
|
||||
player.addListener(listener);
|
||||
player.setMediaSource(new FakeMediaSource());
|
||||
|
||||
@ -10178,7 +10176,7 @@ public final class ExoPlayerTest {
|
||||
final FakeMediaSource mediaSource =
|
||||
new FakeMediaSource(timeline1, ExoPlayerTestRunner.VIDEO_FORMAT);
|
||||
ExoPlayer player = new TestExoPlayerBuilder(context).build();
|
||||
EventListener listener = mock(EventListener.class);
|
||||
Player.Listener listener = mock(Player.Listener.class);
|
||||
player.addListener(listener);
|
||||
player.setMediaSource(mediaSource);
|
||||
|
||||
|
@ -1041,7 +1041,7 @@ public final class AnalyticsCollectorTest {
|
||||
@Override
|
||||
public void run(SimpleExoPlayer player) {
|
||||
player.addListener(
|
||||
new Player.EventListener() {
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPositionDiscontinuity(
|
||||
Player.PositionInfo oldPosition,
|
||||
|
@ -58,8 +58,8 @@ public class TestPlayerRunHelper {
|
||||
return;
|
||||
}
|
||||
AtomicBoolean receivedExpectedState = new AtomicBoolean(false);
|
||||
Player.EventListener listener =
|
||||
new Player.EventListener() {
|
||||
Player.Listener listener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlaybackStateChanged(int state) {
|
||||
if (state == expectedState) {
|
||||
@ -88,8 +88,8 @@ public class TestPlayerRunHelper {
|
||||
return;
|
||||
}
|
||||
AtomicBoolean receivedExpectedPlayWhenReady = new AtomicBoolean(false);
|
||||
Player.EventListener listener =
|
||||
new Player.EventListener() {
|
||||
Player.Listener listener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlayWhenReadyChanged(boolean playWhenReady, int reason) {
|
||||
if (playWhenReady == expectedPlayWhenReady) {
|
||||
@ -118,8 +118,8 @@ public class TestPlayerRunHelper {
|
||||
return;
|
||||
}
|
||||
AtomicBoolean receivedExpectedTimeline = new AtomicBoolean(false);
|
||||
Player.EventListener listener =
|
||||
new Player.EventListener() {
|
||||
Player.Listener listener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onTimelineChanged(Timeline timeline, int reason) {
|
||||
if (expectedTimeline.equals(timeline)) {
|
||||
@ -143,8 +143,8 @@ public class TestPlayerRunHelper {
|
||||
public static Timeline runUntilTimelineChanged(Player player) throws TimeoutException {
|
||||
verifyMainTestThread(player);
|
||||
AtomicReference<Timeline> receivedTimeline = new AtomicReference<>();
|
||||
Player.EventListener listener =
|
||||
new Player.EventListener() {
|
||||
Player.Listener listener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onTimelineChanged(Timeline timeline, int reason) {
|
||||
receivedTimeline.set(timeline);
|
||||
@ -158,7 +158,7 @@ public class TestPlayerRunHelper {
|
||||
|
||||
/**
|
||||
* Runs tasks of the main {@link Looper} until a {@link
|
||||
* Player.EventListener#onPositionDiscontinuity(Player.PositionInfo, Player.PositionInfo, int)}
|
||||
* Player.Listener#onPositionDiscontinuity(Player.PositionInfo, Player.PositionInfo, int)}
|
||||
* callback with the specified {@link Player.DiscontinuityReason} occurred.
|
||||
*
|
||||
* @param player The {@link Player}.
|
||||
@ -170,8 +170,8 @@ public class TestPlayerRunHelper {
|
||||
Player player, @Player.DiscontinuityReason int expectedReason) throws TimeoutException {
|
||||
verifyMainTestThread(player);
|
||||
AtomicBoolean receivedCallback = new AtomicBoolean(false);
|
||||
Player.EventListener listener =
|
||||
new Player.EventListener() {
|
||||
Player.Listener listener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPositionDiscontinuity(
|
||||
Player.PositionInfo oldPosition, Player.PositionInfo newPosition, int reason) {
|
||||
@ -196,8 +196,8 @@ public class TestPlayerRunHelper {
|
||||
public static ExoPlaybackException runUntilError(Player player) throws TimeoutException {
|
||||
verifyMainTestThread(player);
|
||||
AtomicReference<ExoPlaybackException> receivedError = new AtomicReference<>();
|
||||
Player.EventListener listener =
|
||||
new Player.EventListener() {
|
||||
Player.Listener listener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlayerError(ExoPlaybackException error) {
|
||||
receivedError.set(error);
|
||||
|
@ -729,7 +729,7 @@ public abstract class Action {
|
||||
}
|
||||
}
|
||||
|
||||
/** Waits for {@link Player.EventListener#onTimelineChanged(Timeline, int)}. */
|
||||
/** Waits for {@link Player.Listener#onTimelineChanged(Timeline, int)}. */
|
||||
public static final class WaitForTimelineChanged extends Action {
|
||||
|
||||
@Nullable private final Timeline expectedTimeline;
|
||||
@ -776,8 +776,8 @@ public abstract class Action {
|
||||
if (nextAction == null) {
|
||||
return;
|
||||
}
|
||||
Player.EventListener listener =
|
||||
new Player.EventListener() {
|
||||
Player.Listener listener =
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onTimelineChanged(
|
||||
Timeline timeline, @Player.TimelineChangeReason int reason) {
|
||||
@ -804,7 +804,7 @@ public abstract class Action {
|
||||
}
|
||||
|
||||
/**
|
||||
* Waits for {@link Player.EventListener#onPositionDiscontinuity(Player.PositionInfo,
|
||||
* Waits for {@link Player.Listener#onPositionDiscontinuity(Player.PositionInfo,
|
||||
* Player.PositionInfo, int)}.
|
||||
*/
|
||||
public static final class WaitForPositionDiscontinuity extends Action {
|
||||
@ -825,7 +825,7 @@ public abstract class Action {
|
||||
return;
|
||||
}
|
||||
player.addListener(
|
||||
new Player.EventListener() {
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPositionDiscontinuity(
|
||||
Player.PositionInfo oldPosition,
|
||||
@ -846,7 +846,7 @@ public abstract class Action {
|
||||
|
||||
/**
|
||||
* Waits for a specified playWhenReady value, returning either immediately or after a call to
|
||||
* {@link Player.EventListener#onPlayWhenReadyChanged(boolean, int)}.
|
||||
* {@link Player.Listener#onPlayWhenReadyChanged(boolean, int)}.
|
||||
*/
|
||||
public static final class WaitForPlayWhenReady extends Action {
|
||||
|
||||
@ -875,7 +875,7 @@ public abstract class Action {
|
||||
nextAction.schedule(player, trackSelector, surface, handler);
|
||||
} else {
|
||||
player.addListener(
|
||||
new Player.EventListener() {
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlayWhenReadyChanged(
|
||||
boolean playWhenReady, @Player.PlayWhenReadyChangeReason int reason) {
|
||||
@ -897,7 +897,7 @@ public abstract class Action {
|
||||
|
||||
/**
|
||||
* Waits for a specified playback state, returning either immediately or after a call to {@link
|
||||
* Player.EventListener#onPlaybackStateChanged(int)}.
|
||||
* Player.Listener#onPlaybackStateChanged(int)}.
|
||||
*/
|
||||
public static final class WaitForPlaybackState extends Action {
|
||||
|
||||
@ -926,7 +926,7 @@ public abstract class Action {
|
||||
nextAction.schedule(player, trackSelector, surface, handler);
|
||||
} else {
|
||||
player.addListener(
|
||||
new Player.EventListener() {
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onPlaybackStateChanged(@Player.State int playbackState) {
|
||||
if (targetPlaybackState == playbackState) {
|
||||
@ -987,7 +987,7 @@ public abstract class Action {
|
||||
|
||||
/**
|
||||
* Waits for a specified loading state, returning either immediately or after a call to {@link
|
||||
* Player.EventListener#onIsLoadingChanged(boolean)}.
|
||||
* Player.Listener#onIsLoadingChanged(boolean)}.
|
||||
*/
|
||||
public static final class WaitForIsLoading extends Action {
|
||||
|
||||
@ -1016,7 +1016,7 @@ public abstract class Action {
|
||||
nextAction.schedule(player, trackSelector, surface, handler);
|
||||
} else {
|
||||
player.addListener(
|
||||
new Player.EventListener() {
|
||||
new Player.Listener() {
|
||||
@Override
|
||||
public void onIsLoadingChanged(boolean isLoading) {
|
||||
if (targetIsLoading == isLoading) {
|
||||
|
@ -50,7 +50,7 @@ import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
/** Helper class to run an ExoPlayer test. */
|
||||
public final class ExoPlayerTestRunner implements Player.EventListener, ActionSchedule.Callback {
|
||||
public final class ExoPlayerTestRunner implements Player.Listener, ActionSchedule.Callback {
|
||||
|
||||
/** A generic video {@link Format} which can be used to set up a {@link FakeMediaSource}. */
|
||||
public static final Format VIDEO_FORMAT =
|
||||
@ -82,7 +82,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
|
||||
private Object manifest;
|
||||
private ActionSchedule actionSchedule;
|
||||
private Surface surface;
|
||||
private Player.EventListener eventListener;
|
||||
private Player.Listener playerListener;
|
||||
private AnalyticsListener analyticsListener;
|
||||
private Integer expectedPlayerEndedCount;
|
||||
private boolean pauseAtEndOfMediaItems;
|
||||
@ -290,14 +290,14 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets an {@link Player.EventListener} to be registered to listen to player events.
|
||||
* Sets an {@link Player.Listener} to be registered to listen to player events.
|
||||
*
|
||||
* @param eventListener A {@link Player.EventListener} to be registered by the test runner to
|
||||
* listen to player events.
|
||||
* @param playerListener A {@link Player.Listener} to be registered by the test runner to listen
|
||||
* to player events.
|
||||
* @return This builder.
|
||||
*/
|
||||
public Builder setEventListener(Player.EventListener eventListener) {
|
||||
this.eventListener = eventListener;
|
||||
public Builder setPlayerListener(Player.Listener playerListener) {
|
||||
this.playerListener = playerListener;
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -349,7 +349,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
|
||||
initialPositionMs,
|
||||
surface,
|
||||
actionSchedule,
|
||||
eventListener,
|
||||
playerListener,
|
||||
analyticsListener,
|
||||
expectedPlayerEndedCount,
|
||||
pauseAtEndOfMediaItems);
|
||||
@ -363,7 +363,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
|
||||
private final long initialPositionMs;
|
||||
@Nullable private final Surface surface;
|
||||
@Nullable private final ActionSchedule actionSchedule;
|
||||
@Nullable private final Player.EventListener eventListener;
|
||||
@Nullable private final Player.Listener playerListener;
|
||||
@Nullable private final AnalyticsListener analyticsListener;
|
||||
|
||||
private final Clock clock;
|
||||
@ -393,7 +393,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
|
||||
long initialPositionMs,
|
||||
@Nullable Surface surface,
|
||||
@Nullable ActionSchedule actionSchedule,
|
||||
@Nullable Player.EventListener eventListener,
|
||||
@Nullable Player.Listener playerListener,
|
||||
@Nullable AnalyticsListener analyticsListener,
|
||||
int expectedPlayerEndedCount,
|
||||
boolean pauseAtEndOfMediaItems) {
|
||||
@ -404,7 +404,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
|
||||
this.initialPositionMs = initialPositionMs;
|
||||
this.surface = surface;
|
||||
this.actionSchedule = actionSchedule;
|
||||
this.eventListener = eventListener;
|
||||
this.playerListener = playerListener;
|
||||
this.analyticsListener = analyticsListener;
|
||||
this.clock = playerBuilder.getClock();
|
||||
timelines = new ArrayList<>();
|
||||
@ -454,8 +454,8 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
|
||||
player.setPauseAtEndOfMediaItems(true);
|
||||
}
|
||||
player.addListener(ExoPlayerTestRunner.this);
|
||||
if (eventListener != null) {
|
||||
player.addListener(eventListener);
|
||||
if (playerListener != null) {
|
||||
player.addListener(playerListener);
|
||||
}
|
||||
if (analyticsListener != null) {
|
||||
player.addAnalyticsListener(analyticsListener);
|
||||
@ -530,8 +530,8 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
|
||||
// Assertions called on the test thread after test finished.
|
||||
|
||||
/**
|
||||
* Asserts that the timelines reported by {@link Player.EventListener#onTimelineChanged(Timeline,
|
||||
* int)} are the same to the provided timelines. This assert differs from testing equality by not
|
||||
* Asserts that the timelines reported by {@link Player.Listener#onTimelineChanged(Timeline, int)}
|
||||
* are the same to the provided timelines. This assert differs from testing equality by not
|
||||
* comparing period ids which may be different due to id mapping of child source period ids.
|
||||
*
|
||||
* @param timelines A list of expected {@link Timeline}s.
|
||||
@ -546,8 +546,8 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
|
||||
|
||||
/**
|
||||
* Asserts that the timeline change reasons reported by {@link
|
||||
* Player.EventListener#onTimelineChanged(Timeline, int)} are equal to the provided timeline
|
||||
* change reasons.
|
||||
* Player.Listener#onTimelineChanged(Timeline, int)} are equal to the provided timeline change
|
||||
* reasons.
|
||||
*/
|
||||
public void assertTimelineChangeReasonsEqual(Integer... reasons) {
|
||||
assertThat(timelineChangeReasons).containsExactlyElementsIn(Arrays.asList(reasons)).inOrder();
|
||||
@ -555,7 +555,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
|
||||
|
||||
/**
|
||||
* Asserts that the media items reported by {@link
|
||||
* Player.EventListener#onMediaItemTransition(MediaItem, int)} are the same as the provided media
|
||||
* Player.Listener#onMediaItemTransition(MediaItem, int)} are the same as the provided media
|
||||
* items.
|
||||
*
|
||||
* @param mediaItems A list of expected {@link MediaItem media items}.
|
||||
@ -566,8 +566,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
|
||||
|
||||
/**
|
||||
* Asserts that the media item transition reasons reported by {@link
|
||||
* Player.EventListener#onMediaItemTransition(MediaItem, int)} are the same as the provided
|
||||
* reasons.
|
||||
* Player.Listener#onMediaItemTransition(MediaItem, int)} are the same as the provided reasons.
|
||||
*
|
||||
* @param reasons A list of expected transition reasons.
|
||||
*/
|
||||
@ -577,7 +576,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
|
||||
|
||||
/**
|
||||
* Asserts that the playback states reported by {@link
|
||||
* Player.EventListener#onPlaybackStateChanged(int)} are equal to the provided playback states.
|
||||
* Player.Listener#onPlaybackStateChanged(int)} are equal to the provided playback states.
|
||||
*/
|
||||
public void assertPlaybackStatesEqual(Integer... states) {
|
||||
assertThat(playbackStates).containsExactlyElementsIn(states).inOrder();
|
||||
@ -585,8 +584,8 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
|
||||
|
||||
/**
|
||||
* Asserts that the last track group array reported by {@link
|
||||
* Player.EventListener#onTracksChanged(TrackGroupArray, TrackSelectionArray)} is equal to the
|
||||
* provided track group array.
|
||||
* Player.Listener#onTracksChanged(TrackGroupArray, TrackSelectionArray)} is equal to the provided
|
||||
* track group array.
|
||||
*
|
||||
* @param trackGroupArray The expected {@link TrackGroupArray}.
|
||||
*/
|
||||
@ -595,7 +594,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that {@link Player.EventListener#onPositionDiscontinuity(Player.PositionInfo,
|
||||
* Asserts that {@link Player.Listener#onPositionDiscontinuity(Player.PositionInfo,
|
||||
* Player.PositionInfo, int)} was not called.
|
||||
*/
|
||||
public void assertNoPositionDiscontinuities() {
|
||||
@ -604,8 +603,8 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
|
||||
|
||||
/**
|
||||
* Asserts that the discontinuity reasons reported by {@link
|
||||
* Player.EventListener#onPositionDiscontinuity(Player.PositionInfo, Player.PositionInfo, int)}
|
||||
* are equal to the provided values.
|
||||
* Player.Listener#onPositionDiscontinuity(Player.PositionInfo, Player.PositionInfo, int)} are
|
||||
* equal to the provided values.
|
||||
*
|
||||
* @param discontinuityReasons The expected discontinuity reasons.
|
||||
*/
|
||||
@ -657,7 +656,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
|
||||
}
|
||||
}
|
||||
|
||||
// Player.EventListener
|
||||
// Player.Listener
|
||||
|
||||
@Override
|
||||
public void onTimelineChanged(Timeline timeline, @Player.TimelineChangeReason int reason) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user