23

我想控制音频的播放速度AVAudioplayer。这可能吗?如果是这样,你会怎么做?

4

6 回答 6

35

现在可以更改播放速度。

示例代码:

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设置为YES,您可以更改它。

文档中查看更多信息。

于 2013-01-08T17:26:54.537 回答
17

斯威夫特 2 - 斯威夫特 5

您可以通过执行以下操作来提高速率:

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

如果你想循环,你可以添加这个:

player.numberOfLoops = 3
于 2016-02-13T04:07:22.470 回答
3

尝试这个 -

audioP = try! AVAudioPlayer(contentsOf: URL(fileURLWithPath: selectedPath), fileTypeHint: "caf")
        audioP.enableRate = true
        audioP.prepareToPlay()
        audioP.rate = 1.5
        audioP.play()
于 2017-05-18T21:33:03.417 回答
1

你不能。您只能更改音量而不是播放速度。

我认为要做到这一点,您将不得不使用更低级别的音频队列API 并手动操作音频流以应用该效果。

于 2010-02-28T13:43:21.417 回答
1

设置 enableRate = YES 然后你可以在 0.1 和 2.0 之间调整速率来减速和加速(1.0 是正常速度)

于 2018-03-03T22:36:05.943 回答
0

AVAudioPlayer 不支持播放速度设置。音频队列服务使用起来相当痛苦,因此您可能想尝试 OpenAL。有关如何在 Objective-C 中包装 OpenAL 的示例,请参阅Cocos2DFinch的声音引擎。

于 2010-02-28T16:17:31.660 回答