音频值的播放缓冲区 - iOS

时间:2012-04-02 08:35:43

标签: objective-c ios core-audio

我正在尝试播放我在Objective-C中创建的示例音频值的 NSArray 。我已经生成了没有问题的值,但是如何通过iPhone播放它们呢?

由于

2 个答案:

答案 0 :(得分:1)

将值从NSArray复制到适当缩放的PCM样本的C数组中。然后,您可以通过预先添加RIFF标头并使用AVAudioPlayer播放此文件将此数组转换为WAV文件,或者您可以直接将PCM样本输入音频回调中的音频队列或RemoteIO音频单元的C数组缓冲区。

答案 1 :(得分:1)

我建议将NSArray转换为NSData对象,然后使用AVAudioPlayer方法initWithData:error:see here)加载为可播放的音频。 AVAudioPlayer具有与音频队列和音频单元方法相关的极其简单的优点。

如何将NSArray转换为NSData取决于样本的类型(this SO post可能会知道如何做到这一点,尽管NSKeyedArchiver归档过程可能会搞乱您的样本)。我建议,如果你的样本生成过程允许,只需将样本创建到NSData对象中并跳过这样的转换。