use of com.google.android.exoplayer2.Timeline.Window in project react-native-video by react-native-community.
the class ReactExoplayerView method releasePlayer.
private void releasePlayer() {
if (player != null) {
isPaused = player.getPlayWhenReady();
shouldRestorePosition = false;
playerWindow = player.getCurrentWindowIndex();
playerPosition = C.TIME_UNSET;
Timeline timeline = player.getCurrentTimeline();
if (!timeline.isEmpty() && timeline.getWindow(playerWindow, window).isSeekable) {
playerPosition = player.getCurrentPosition();
}
player.release();
player.setMetadataOutput(null);
player = null;
trackSelector = null;
}
progressHandler.removeMessages(SHOW_PROGRESS);
themedReactContext.removeLifecycleEventListener(this);
audioBecomingNoisyReceiver.removeListener();
}
use of com.google.android.exoplayer2.Timeline.Window in project LeafPic by HoraApps.
the class CustomPlayBackController method previous.
private void previous() {
Timeline currentTimeline = player.getCurrentTimeline();
if (currentTimeline == null) {
return;
}
int currentWindowIndex = player.getCurrentWindowIndex();
currentTimeline.getWindow(currentWindowIndex, window);
if (currentWindowIndex > 0 && (player.getCurrentPosition() <= MAX_POSITION_FOR_SEEK_TO_PREVIOUS || (window.isDynamic && !window.isSeekable))) {
player.seekToDefaultPosition(currentWindowIndex - 1);
} else {
player.seekTo(0);
}
}
use of com.google.android.exoplayer2.Timeline.Window in project LeafPic by HoraApps.
the class CustomPlayBackController method updateNavigation.
private void updateNavigation() {
if (!isVisible() || !isAttachedToWindow) {
return;
}
Timeline timeline = player != null ? player.getCurrentTimeline() : null;
boolean haveNonEmptyTimeline = timeline != null && !timeline.isEmpty();
boolean isSeekable = false;
boolean enablePrevious = false;
boolean enableNext = false;
if (haveNonEmptyTimeline && !player.isPlayingAd()) {
int windowIndex = player.getCurrentWindowIndex();
timeline.getWindow(windowIndex, window);
isSeekable = window.isSeekable;
enablePrevious = isSeekable || !window.isDynamic || player.getPreviousWindowIndex() != C.INDEX_UNSET;
enableNext = window.isDynamic || player.getNextWindowIndex() != C.INDEX_UNSET;
}
// TODO: 12/16/17
setButtonEnabled(enablePrevious && false, previousButton, true);
setButtonEnabled(enableNext && false, nextButton, true);
setButtonEnabled(fastForwardMs > 0 && isSeekable, fastForwardButton, false);
setButtonEnabled(rewindMs > 0 && isSeekable, rewindButton, false);
progressBar.setEnabled(isSeekable);
}
Aggregations