diff --git a/library/src/main/java/com/google/android/exoplayer/ExoPlayerImplInternal.java b/library/src/main/java/com/google/android/exoplayer/ExoPlayerImplInternal.java index e72734e80a..96019112e7 100644 --- a/library/src/main/java/com/google/android/exoplayer/ExoPlayerImplInternal.java +++ b/library/src/main/java/com/google/android/exoplayer/ExoPlayerImplInternal.java @@ -375,10 +375,13 @@ import java.util.List; } private void updatePositionUs() { - positionUs = timeSourceTrackRenderer != null && - enabledRenderers.contains(timeSourceTrackRenderer) ? - timeSourceTrackRenderer.getCurrentPositionUs() : - mediaClock.getPositionUs(); + if (timeSourceTrackRenderer != null && enabledRenderers.contains(timeSourceTrackRenderer) + && !timeSourceTrackRenderer.isEnded()) { + positionUs = timeSourceTrackRenderer.getCurrentPositionUs(); + mediaClock.setPositionUs(positionUs); + } else { + positionUs = mediaClock.getPositionUs(); + } elapsedRealtimeUs = SystemClock.elapsedRealtime() * 1000; }