Commit 72aec83a by krocard Committed by Oliver Woodman

Add setPlaybackSpeed as a convenience method to change speed.

PiperOrigin-RevId: 359734928
parent 1c40c754
......@@ -138,6 +138,11 @@ public abstract class BasePlayer implements Player {
}
@Override
public final void setPlaybackSpeed(float speed) {
setPlaybackParameters(getPlaybackParameters().withSpeed(speed));
}
@Override
public final void stop() {
stop(/* reset= */ false);
}
......
......@@ -1305,6 +1305,18 @@ public interface Player {
void setPlaybackParameters(@Nullable PlaybackParameters playbackParameters);
/**
* Changes the rate at which playback occurs.
*
* <p>The pitch is not changed.
*
* <p>This is equivalent to {@code setPlaybackParameter(getPlaybackParameter().withSpeed(speed))}.
*
* @param speed The linear factor by which playback will be sped up. Must be higher than 0. 1 is
* normal speed, 2 is twice as fast, 0.5 is half normal speed...
*/
void setPlaybackSpeed(float speed);
/**
* Returns the currently active playback parameters.
*
* @see EventListener#onPlaybackParametersChanged(PlaybackParameters)
......
......@@ -8606,6 +8606,20 @@ public final class ExoPlayerTest {
}
@Test
public void playerIdle_withSetPlaybackSpeed_usesPlaybackParameterSpeedWithPitchUnchanged() {
ExoPlayer player = new TestExoPlayerBuilder(context).build();
player.setPlaybackParameters(new PlaybackParameters(/* speed= */ 1, /* pitch= */ 2));
Player.EventListener mockListener = mock(Player.EventListener.class);
player.addListener(mockListener);
player.prepare();
player.setPlaybackSpeed(2);
verify(mockListener)
.onPlaybackParametersChanged(new PlaybackParameters(/* speed= */ 2, /* pitch= */ 2));
}
@Test
public void targetLiveOffsetInMedia_withSetPlaybackParameters_usesPlaybackParameterSpeed()
throws Exception {
long windowStartUnixTimeMs = 987_654_321_000L;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment