diff --git a/RELEASENOTES.md b/RELEASENOTES.md index b59b9798a4e..c9aef742702 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -25,6 +25,8 @@ * Core * Move `getRendererCount` and `getRendererType` methods from `Player` to `ExoPlayer`. + * Reset playback speed when live playback speed control becomes unused + ([#8664](https://github.com/google/ExoPlayer/issues/8664)). * Remove deprecated symbols: * Remove `Player.DefaultEventListener`. Use `Player.EventListener` instead. diff --git a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java index b518455eed5..f6da219717d 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java @@ -1821,7 +1821,10 @@ private void updateLivePlaybackSpeedControl( MediaPeriodId oldPeriodId, long positionForTargetOffsetOverrideUs) { if (newTimeline.isEmpty() || !shouldUseLivePlaybackSpeedControl(newTimeline, newPeriodId)) { - // Live playback speed control is unused. + // Live playback speed control is unused for the current period, reset speed if adjusted. + if (mediaClock.getPlaybackParameters().speed != playbackInfo.playbackParameters.speed) { + mediaClock.setPlaybackParameters(playbackInfo.playbackParameters); + } return; } int windowIndex = newTimeline.getPeriodByUid(newPeriodId.periodUid, period).windowIndex;