AVAudioPlayer: How to Change the Playback Speed of Audio?

Now it is possible to change the playback speed.

Sample code:

player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:&err];
player.volume = 0.4f;
player.enableRate = YES; //<--
[player prepareToPlay];
[player setNumberOfLoops:0];
player.rate = 2.0f; //<-- Playback Speed
[player play];

enableRate is set to YES and you can change it.

See more in the docs.


Swift 2 - Swift 5

You can increase the rate by doing this:

player.enableRate = true
player.prepareToPlay()
player.rate = 2.0
player.play()

If you want to loop, you can add this:

player.numberOfLoops = 3

Try this -

audioP = try! AVAudioPlayer(contentsOf: URL(fileURLWithPath: selectedPath), fileTypeHint: "caf")
        audioP.enableRate = true
        audioP.prepareToPlay()
        audioP.rate = 1.5
        audioP.play()

You can't. You can only change the volume not the speed of playback.

I think to do that, you will have to use the much lower level Audio Queue APIs and manipulate the audio stream manually to apply that effect.