From 8dc63dd2aa985f4266447d346e3d92bcf815e17b Mon Sep 17 00:00:00 2001 From: bachinger Date: Thu, 4 Mar 2021 11:36:23 +0000 Subject: [PATCH] Reset playback speed when live speed control becomes unused Issue: #8664 #minor-release PiperOrigin-RevId: 360877086 --- RELEASENOTES.md | 2 ++ .../com/google/android/exoplayer2/ExoPlayerImplInternal.java | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index b59b9798a4..c9aef74270 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 b518455eed..f6da219717 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 @@ import java.util.concurrent.atomic.AtomicBoolean; 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;