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 { ...@@ -138,6 +138,11 @@ public abstract class BasePlayer implements Player {
} }
@Override @Override
public final void setPlaybackSpeed(float speed) {
setPlaybackParameters(getPlaybackParameters().withSpeed(speed));
}
@Override
public final void stop() { public final void stop() {
stop(/* reset= */ false); stop(/* reset= */ false);
} }
......
...@@ -1305,6 +1305,18 @@ public interface Player { ...@@ -1305,6 +1305,18 @@ public interface Player {
void setPlaybackParameters(@Nullable PlaybackParameters playbackParameters); 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. * Returns the currently active playback parameters.
* *
* @see EventListener#onPlaybackParametersChanged(PlaybackParameters) * @see EventListener#onPlaybackParametersChanged(PlaybackParameters)
......
...@@ -8606,6 +8606,20 @@ public final class ExoPlayerTest { ...@@ -8606,6 +8606,20 @@ public final class ExoPlayerTest {
} }
@Test @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() public void targetLiveOffsetInMedia_withSetPlaybackParameters_usesPlaybackParameterSpeed()
throws Exception { throws Exception {
long windowStartUnixTimeMs = 987_654_321_000L; 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