private void handleSourceInfoRefreshEndedPlayback() { setState(Player.STATE_ENDED); // Reset, but retain the source so that it can still be used should a seek occur. resetInternal( /* releaseMediaSource= */ false, /* resetPosition= */ true, /* resetState= */ false); }
private void releaseInternal() { resetInternal( /* releaseMediaSource= */ true, /* resetPosition= */ true, /* resetState= */ true); loadControl.onReleased(); setState(Player.STATE_IDLE); internalPlaybackThread.quit(); synchronized (this) { released = true; notifyAll(); } }
private void stopInternal(boolean reset, boolean acknowledgeStop) { resetInternal( /* releaseMediaSource= */ true, /* resetPosition= */ reset, /* resetState= */ reset); playbackInfoUpdate.incrementPendingOperationAcks( pendingPrepareCount + (acknowledgeStop ? 1 : 0)); pendingPrepareCount = 0; loadControl.onStopped(); setState(Player.STATE_IDLE); }
private void prepareInternal(MediaSource mediaSource, boolean resetPosition, boolean resetState) { pendingPrepareCount++; resetInternal(/* releaseMediaSource= */ true, resetPosition, resetState); loadControl.onPrepared(); this.mediaSource = mediaSource; setState(Player.STATE_BUFFERING); mediaSource.prepareSource( player, /* isTopLevelSource= */ true, /* listener= */ this, bandwidthMeter.getTransferListener()); handler.sendEmptyMessage(MSG_DO_SOME_WORK); }
|| playingPeriodDurationUs <= playbackInfo.positionUs) && playingPeriodHolder.info.isFinal) { setState(Player.STATE_ENDED); stopRenderers(); } else if (playbackInfo.playbackState == Player.STATE_BUFFERING && shouldTransitionToReadyState(renderersReadyOrEnded)) { setState(Player.STATE_READY); if (playWhenReady) { startRenderers(); && !(enabledRenderers.length == 0 ? isTimelineReady() : renderersReadyOrEnded)) { rebuffering = playWhenReady; setState(Player.STATE_BUFFERING); stopRenderers();
stopRenderers(); rebuffering = false; setState(Player.STATE_BUFFERING);
} else if (periodPositionUs == C.TIME_UNSET) { setState(Player.STATE_ENDED); resetInternal( /* releaseMediaSource= */ false, /* resetPosition= */ true, /* resetState= */ false);