@Override public long getCurrentPosition() { if (mInternalPlayer == null) return 0; return mInternalPlayer.getCurrentPosition(); }
@Override public long getCurrentPosition() { if (simpleExoPlayer != null) return simpleExoPlayer.getCurrentPosition(); else return 0; }
@Override public int getCurrentPosition() { return (int) mInternalPlayer.getCurrentPosition(); }
@Override public void run(SimpleExoPlayer player) { positionHolder[0] = player.getCurrentPosition(); } })
@Override public void run(SimpleExoPlayer player) { positionHolder[0] = player.getCurrentPosition(); } })
@Override public void run(SimpleExoPlayer player) { positionHolder[0] = player.getCurrentPosition(); } })
@Override public void run(SimpleExoPlayer player) { positionHolder[0] = player.getCurrentPosition(); } })
@Override public void run(SimpleExoPlayer player) { positionHolder[1] = player.getCurrentPosition(); } })
private void savePlaybackState() { if (simpleExoPlayer == null || currentMetadata == null) return; final StreamInfo currentInfo = currentMetadata.getMetadata(); if (simpleExoPlayer.getCurrentPosition() > RECOVERY_SKIP_THRESHOLD_MILLIS && simpleExoPlayer.getCurrentPosition() < simpleExoPlayer.getDuration() - RECOVERY_SKIP_THRESHOLD_MILLIS) { savePlaybackState(currentInfo, simpleExoPlayer.getCurrentPosition()); } }
public void seekBy(long offsetMillis) { if (DEBUG) Log.d(TAG, "seekBy() called with: offsetMillis = [" + offsetMillis + "]"); seekTo(simpleExoPlayer.getCurrentPosition() + offsetMillis); }
public boolean isCurrentWindowValid() { return simpleExoPlayer != null && simpleExoPlayer.getDuration() >= 0 && simpleExoPlayer.getCurrentPosition() >= 0; }
@Override public void run(SimpleExoPlayer player) { // Position after repreparation finished. positionHolder[2] = player.getCurrentPosition(); windowIndexHolder[2] = player.getCurrentWindowIndex(); } })
@Override public void handleMessage(SimpleExoPlayer player, int messageType, @Nullable Object message) { if (player != null) { windowIndex = player.getCurrentWindowIndex(); positionMs = player.getCurrentPosition(); } messageCount++; } }
public void triggerProgressUpdate() { if (simpleExoPlayer == null) return; onUpdateProgress( Math.max((int) simpleExoPlayer.getCurrentPosition(), 0), (int) simpleExoPlayer.getDuration(), simpleExoPlayer.getBufferedPercentage() ); }
@Override public void run(SimpleExoPlayer player) { // Position while in error state positionHolder[0] = player.getCurrentPosition(); windowIndexHolder[0] = player.getCurrentWindowIndex(); } })
@Override public boolean isApproachingPlaybackEdge(final long timeToEndMillis) { // If live, then not near playback edge // If not playing, then not approaching playback edge if (simpleExoPlayer == null || isLive() || !isPlaying()) return false; final long currentPositionMillis = simpleExoPlayer.getCurrentPosition(); final long currentDurationMillis = simpleExoPlayer.getDuration(); return currentDurationMillis - currentPositionMillis < timeToEndMillis; }
public void setRecovery() { if (playQueue == null || simpleExoPlayer == null) return; final int queuePos = playQueue.getIndex(); final long windowPos = simpleExoPlayer.getCurrentPosition(); if (windowPos > 0 && windowPos <= simpleExoPlayer.getDuration()) { setRecovery(queuePos, windowPos); } }
@Override public void run(SimpleExoPlayer player) { // Position while repreparing. positionHolder[1] = player.getCurrentPosition(); windowIndexHolder[1] = player.getCurrentWindowIndex(); secondMediaSource.setNewSourceInfo(timeline, /* newManifest= */ null); } })
public void onPlayPrevious() { if (simpleExoPlayer == null || playQueue == null) return; if (DEBUG) Log.d(TAG, "onPlayPrevious() called"); /* If current playback has run for PLAY_PREV_ACTIVATION_LIMIT_MILLIS milliseconds, * restart current track. Also restart the track if the current track * is the first in a queue.*/ if (simpleExoPlayer.getCurrentPosition() > PLAY_PREV_ACTIVATION_LIMIT_MILLIS || playQueue.getIndex() == 0) { seekToDefault(); playQueue.offsetIndex(0); } else { savePlaybackState(); playQueue.offsetIndex(-1); } }
/** * Checks if the current playback is a livestream AND is playing at or beyond the live edge */ @SuppressWarnings("BooleanMethodIsAlwaysInverted") public boolean isLiveEdge() { if (simpleExoPlayer == null || !isLive()) return false; final Timeline currentTimeline = simpleExoPlayer.getCurrentTimeline(); final int currentWindowIndex = simpleExoPlayer.getCurrentWindowIndex(); if (currentTimeline.isEmpty() || currentWindowIndex < 0 || currentWindowIndex >= currentTimeline.getWindowCount()) { return false; } Timeline.Window timelineWindow = new Timeline.Window(); currentTimeline.getWindow(currentWindowIndex, timelineWindow); return timelineWindow.getDefaultPositionMs() <= simpleExoPlayer.getCurrentPosition(); }