Подтвердить что ты не робот

AVAudioPlayer: как изменить скорость воспроизведения аудио?

Я хочу контролировать скорость воспроизведения звука в AVAudioplayer. Это возможно? Если да, как бы вы это сделали?

4b9b3361

Ответ 1

Теперь можно изменить скорость звука.

Вот мой пример кода:

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;
        [player play];

'enableRate' установлен в 'YES', и вы можете его изменить.

подробнее docs

Ответ 2

Похоже, что он работает для iOS5 - docs и просматривает rate.

спасибо,

Ответ 3

Swift 2.0

Вы можете увеличить скорость, выполнив следующие действия:

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

Если вы хотите выполнить цикл, вы можете добавить это:

player.numberOfLoops = 3

Ответ 4

Вы не можете. Вы можете изменить громкость, а не скорость воспроизведения.

Я думаю, что для этого вам придется использовать гораздо более низкие уровни API-интерфейсов очереди звука и вручную манипулировать аудиопотоком, чтобы применить этот эффект.

Ответ 5

Попробуйте это -

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

Ответ 6

AVAudioPlayer не поддерживает настройку скорости воспроизведения. Службы очереди аудио довольно больны, поэтому вы можете попробовать OpenAL. См. Звуковой движок Cocos2D или Finch для примеров того, как обернуть OpenAL в Objective-C.