iPhone SDK:使用核心音频AVAudioPlayer更改播放速度

时间:2010-03-11 18:58:34

标签: iphone audio core-audio avaudioplayer

我希望能够播放我使用AVAudioRecorder @ 1.5x或2.0x速度录制的音频。我没有在AVAudioPlayer中看到任何支持它的东西。如果可能的话,我会感谢一些关于如何使用iPhone 3.x SDK完成此操作的建议。我并不过分担心降低音高以补偿提高的播放速度,但能够这样做是最佳的。

3 个答案:

答案 0 :(得分:2)

更改采样率应该像录音机一样快速播放。一切都变得更高。要保持音高相同,您需要设置一个包含AUPitch效果的音频单位图表,并将音高降低与您提高采样率的相同比率。

答案 1 :(得分:1)

this question。换句话说,您将不得不使用不同的API,如音频队列服务。如果你想尝试一个简单的黑客,你可以尝试加倍音频文件的采样率属性。它可能不会起作用。此外,请注意,在保持相同音高的同时调整播放速度对CPU要求相当高。您需要使用一种名为"time stretching"的可用技术。另外,如果你现在还没有意识到这一点,那么在iPhone上做复杂的音频操作是一个很大的痛苦,因为Apple的文档通常要么非常糟糕,要么不存在。

答案 2 :(得分:0)

如果您想更快或更慢地播放音频,avAudioPlayer中有一个内置方法。你试过AudioPlayer Rate属性吗?在Swift中它会是这样的 -

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