You should look at this project, which was very useful for me: https://github.com/AmrMohammed89/exoplayer2.4.0_speedup
Inside SimpleExoPlayer, I applied the following methods:
private final ExoPlayer player; private float playbackSpeed; float SPEED_NORMAL = 1f; float SPEED_MEDIUM = 1.5f; float SPEED_HIGH = 2f; @Override public float getPlaybackSpeed() { return playbackSpeed; } @Override public void setPlaybackSpeed(float speed) { playbackSpeed = speed; player.setPlaybackSpeed(speed); } @Override public void changePlaybackSpeed() { if (playbackSpeed == SPEED_MEDIUM) { player.setPlaybackSpeed(SPEED_HIGH); playbackSpeed = SPEED_HIGH; } else if (playbackSpeed == SPEED_HIGH) { player.setPlaybackSpeed(SPEED_NORMAL); playbackSpeed = SPEED_NORMAL; } else { player.setPlaybackSpeed(SPEED_MEDIUM); playbackSpeed = SPEED_MEDIUM; } }
I set and saved the speed this way due to an error when I tried to get the last saved speed. So, follow this mechanism and it will work perfectly.
Greetings
source share