Move PlaybackStatsListener to non-deprecated state events
PiperOrigin-RevId: 303764399
This commit is contained in:
parent
378593f551
commit
685bb77297
@ -173,8 +173,8 @@ public final class PlaybackStatsListener
|
|||||||
if (isSeeking) {
|
if (isSeeking) {
|
||||||
tracker.onSeekStarted(eventTime, /* belongsToPlayback= */ true);
|
tracker.onSeekStarted(eventTime, /* belongsToPlayback= */ true);
|
||||||
}
|
}
|
||||||
tracker.onPlayerStateChanged(
|
tracker.onPlaybackStateChanged(eventTime, playbackState, /* belongsToPlayback= */ true);
|
||||||
eventTime, playWhenReady, playbackState, /* belongsToPlayback= */ true);
|
tracker.onPlayWhenReadyChanged(eventTime, playWhenReady, /* belongsToPlayback= */ true);
|
||||||
tracker.onIsSuppressedChanged(eventTime, isSuppressed, /* belongsToPlayback= */ true);
|
tracker.onIsSuppressedChanged(eventTime, isSuppressed, /* belongsToPlayback= */ true);
|
||||||
tracker.onPlaybackSpeedChanged(eventTime, playbackSpeed);
|
tracker.onPlaybackSpeedChanged(eventTime, playbackSpeed);
|
||||||
playbackStatsTrackers.put(session, tracker);
|
playbackStatsTrackers.put(session, tracker);
|
||||||
@ -230,8 +230,7 @@ public final class PlaybackStatsListener
|
|||||||
EventTime startEventTime = Assertions.checkNotNull(sessionStartEventTimes.remove(session));
|
EventTime startEventTime = Assertions.checkNotNull(sessionStartEventTimes.remove(session));
|
||||||
if (automaticTransition) {
|
if (automaticTransition) {
|
||||||
// Simulate ENDED state to record natural ending of playback.
|
// Simulate ENDED state to record natural ending of playback.
|
||||||
tracker.onPlayerStateChanged(
|
tracker.onPlaybackStateChanged(eventTime, Player.STATE_ENDED, /* belongsToPlayback= */ false);
|
||||||
eventTime, /* playWhenReady= */ true, Player.STATE_ENDED, /* belongsToPlayback= */ false);
|
|
||||||
}
|
}
|
||||||
tracker.onFinished(eventTime);
|
tracker.onFinished(eventTime);
|
||||||
PlaybackStats playbackStats = tracker.build(/* isFinal= */ true);
|
PlaybackStats playbackStats = tracker.build(/* isFinal= */ true);
|
||||||
@ -244,16 +243,27 @@ public final class PlaybackStatsListener
|
|||||||
// AnalyticsListener implementation.
|
// AnalyticsListener implementation.
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPlayerStateChanged(
|
public void onPlaybackStateChanged(EventTime eventTime, @Player.State int state) {
|
||||||
EventTime eventTime, boolean playWhenReady, @Player.State int playbackState) {
|
playbackState = state;
|
||||||
this.playWhenReady = playWhenReady;
|
|
||||||
this.playbackState = playbackState;
|
|
||||||
sessionManager.updateSessions(eventTime);
|
sessionManager.updateSessions(eventTime);
|
||||||
for (String session : playbackStatsTrackers.keySet()) {
|
for (String session : playbackStatsTrackers.keySet()) {
|
||||||
boolean belongsToPlayback = sessionManager.belongsToSession(eventTime, session);
|
boolean belongsToPlayback = sessionManager.belongsToSession(eventTime, session);
|
||||||
playbackStatsTrackers
|
playbackStatsTrackers
|
||||||
.get(session)
|
.get(session)
|
||||||
.onPlayerStateChanged(eventTime, playWhenReady, playbackState, belongsToPlayback);
|
.onPlaybackStateChanged(eventTime, playbackState, belongsToPlayback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPlayWhenReadyChanged(
|
||||||
|
EventTime eventTime, boolean playWhenReady, @Player.PlayWhenReadyChangeReason int reason) {
|
||||||
|
this.playWhenReady = playWhenReady;
|
||||||
|
sessionManager.updateSessions(eventTime);
|
||||||
|
for (String session : playbackStatsTrackers.keySet()) {
|
||||||
|
boolean belongsToPlayback = sessionManager.belongsToSession(eventTime, session);
|
||||||
|
playbackStatsTrackers
|
||||||
|
.get(session)
|
||||||
|
.onPlayWhenReadyChanged(eventTime, playWhenReady, belongsToPlayback);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -521,27 +531,36 @@ public final class PlaybackStatsListener
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notifies the tracker of a player state change event, including all player state changes while
|
* Notifies the tracker of a playback state change event, including all playback state changes
|
||||||
* the playback is not in the foreground.
|
* while the playback is not in the foreground.
|
||||||
|
*
|
||||||
|
* @param eventTime The {@link EventTime}.
|
||||||
|
* @param state The current {@link Player.State}.
|
||||||
|
* @param belongsToPlayback Whether the {@code eventTime} belongs to the current playback.
|
||||||
|
*/
|
||||||
|
public void onPlaybackStateChanged(
|
||||||
|
EventTime eventTime, @Player.State int state, boolean belongsToPlayback) {
|
||||||
|
playerPlaybackState = state;
|
||||||
|
if (state != Player.STATE_IDLE) {
|
||||||
|
hasFatalError = false;
|
||||||
|
}
|
||||||
|
if (state == Player.STATE_IDLE || state == Player.STATE_ENDED) {
|
||||||
|
isInterruptedByAd = false;
|
||||||
|
}
|
||||||
|
maybeUpdatePlaybackState(eventTime, belongsToPlayback);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Notifies the tracker of a play when ready change event, including all play when ready changes
|
||||||
|
* while the playback is not in the foreground.
|
||||||
*
|
*
|
||||||
* @param eventTime The {@link EventTime}.
|
* @param eventTime The {@link EventTime}.
|
||||||
* @param playWhenReady Whether the playback will proceed when ready.
|
* @param playWhenReady Whether the playback will proceed when ready.
|
||||||
* @param playbackState The current {@link Player.State}.
|
|
||||||
* @param belongsToPlayback Whether the {@code eventTime} belongs to the current playback.
|
* @param belongsToPlayback Whether the {@code eventTime} belongs to the current playback.
|
||||||
*/
|
*/
|
||||||
public void onPlayerStateChanged(
|
public void onPlayWhenReadyChanged(
|
||||||
EventTime eventTime,
|
EventTime eventTime, boolean playWhenReady, boolean belongsToPlayback) {
|
||||||
boolean playWhenReady,
|
|
||||||
@Player.State int playbackState,
|
|
||||||
boolean belongsToPlayback) {
|
|
||||||
this.playWhenReady = playWhenReady;
|
this.playWhenReady = playWhenReady;
|
||||||
playerPlaybackState = playbackState;
|
|
||||||
if (playbackState != Player.STATE_IDLE) {
|
|
||||||
hasFatalError = false;
|
|
||||||
}
|
|
||||||
if (playbackState == Player.STATE_IDLE || playbackState == Player.STATE_ENDED) {
|
|
||||||
isInterruptedByAd = false;
|
|
||||||
}
|
|
||||||
maybeUpdatePlaybackState(eventTime, belongsToPlayback);
|
maybeUpdatePlaybackState(eventTime, belongsToPlayback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,12 +43,9 @@ public final class PlaybackStatsListenerTest {
|
|||||||
PlaybackStatsListener playbackStatsListener =
|
PlaybackStatsListener playbackStatsListener =
|
||||||
new PlaybackStatsListener(/* keepHistory= */ true, /* callback= */ null);
|
new PlaybackStatsListener(/* keepHistory= */ true, /* callback= */ null);
|
||||||
|
|
||||||
playbackStatsListener.onPlayerStateChanged(
|
playbackStatsListener.onPlaybackStateChanged(TEST_EVENT_TIME, Player.STATE_BUFFERING);
|
||||||
TEST_EVENT_TIME, /* playWhenReady= */ true, Player.STATE_BUFFERING);
|
playbackStatsListener.onPlaybackStateChanged(TEST_EVENT_TIME, Player.STATE_READY);
|
||||||
playbackStatsListener.onPlayerStateChanged(
|
playbackStatsListener.onPlaybackStateChanged(TEST_EVENT_TIME, Player.STATE_ENDED);
|
||||||
TEST_EVENT_TIME, /* playWhenReady= */ true, Player.STATE_READY);
|
|
||||||
playbackStatsListener.onPlayerStateChanged(
|
|
||||||
TEST_EVENT_TIME, /* playWhenReady= */ true, Player.STATE_ENDED);
|
|
||||||
|
|
||||||
@Nullable PlaybackStats playbackStats = playbackStatsListener.getPlaybackStats();
|
@Nullable PlaybackStats playbackStats = playbackStatsListener.getPlaybackStats();
|
||||||
assertThat(playbackStats).isNotNull();
|
assertThat(playbackStats).isNotNull();
|
||||||
@ -60,12 +57,9 @@ public final class PlaybackStatsListenerTest {
|
|||||||
PlaybackStatsListener playbackStatsListener =
|
PlaybackStatsListener playbackStatsListener =
|
||||||
new PlaybackStatsListener(/* keepHistory= */ false, /* callback= */ null);
|
new PlaybackStatsListener(/* keepHistory= */ false, /* callback= */ null);
|
||||||
|
|
||||||
playbackStatsListener.onPlayerStateChanged(
|
playbackStatsListener.onPlaybackStateChanged(TEST_EVENT_TIME, Player.STATE_BUFFERING);
|
||||||
TEST_EVENT_TIME, /* playWhenReady= */ true, Player.STATE_BUFFERING);
|
playbackStatsListener.onPlaybackStateChanged(TEST_EVENT_TIME, Player.STATE_READY);
|
||||||
playbackStatsListener.onPlayerStateChanged(
|
playbackStatsListener.onPlaybackStateChanged(TEST_EVENT_TIME, Player.STATE_ENDED);
|
||||||
TEST_EVENT_TIME, /* playWhenReady= */ true, Player.STATE_READY);
|
|
||||||
playbackStatsListener.onPlayerStateChanged(
|
|
||||||
TEST_EVENT_TIME, /* playWhenReady= */ true, Player.STATE_ENDED);
|
|
||||||
|
|
||||||
@Nullable PlaybackStats playbackStats = playbackStatsListener.getPlaybackStats();
|
@Nullable PlaybackStats playbackStats = playbackStatsListener.getPlaybackStats();
|
||||||
assertThat(playbackStats).isNotNull();
|
assertThat(playbackStats).isNotNull();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user