3

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

4

3 回答 3

3

如果您播放得更快,更改采样率应该就像磁带录音机一样工作。一切都变得更高了。要保持音高相同,您需要设置一个包含 AUPitch 效果的音频单元图表,并以与增加采样率相同的比率降低音高。

于 2010-03-21T16:35:08.090 回答
2

看到这个问题。换句话说,您将不得不使用不同的 API,例如音频队列服务。如果您想尝试简单的破解,可以尝试将音频文件的采样率属性加倍。虽然它可能行不通。另外,请注意,在保持相同音高的同时调整播放速度对 CPU 的要求很高。您需要使用一种称为“时间拉伸”的可用技术。此外,如果你现在还没有意识到,在 iPhone 上用音频做复杂的事情是一件很痛苦的事情,因为 Apple 的文档通常要么非常糟糕,要么根本不存在。

于 2010-03-11T19:48:43.890 回答
1

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

    audioP = try! AVAudioPlayer(contentsOf: URL(fileURLWithPath: selectedPath), fileTypeHint: "caf")
    audioP.enableRate = true
    audioP.prepareToPlay()
    audioP.rate = 1.5
    audioP.play()
于 2017-09-14T07:32:50.120 回答