2012-04-02 100 views
1

我试图回放,我在Objective-C已经创建了样本音频值的的NSArray。我已经生成了没有问题的值,但是我怎样才能通过iPhone回放它们?播放缓冲 - iOS设备

由于

回答

1

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

如何将NSArray转换为NSData取决于您的样本类型(this SO post可能会告诉您如何完成此操作,尽管NSKeyedArchiver归档过程可能会使用您的样本)。我建议,如果您的示例生成过程允许,只需将您的示例创建为NSData对象并跳过这样的转换即可。

1

复制的值出的NSArray成适当缩放的PCM采样的数组c。然后,你可以在前面加上RIFF头转换这个数组为WAV文件和播放使用AVAudioPlayer这个文件,或者你可以直接喂PCM样本到音频队列或RemoteIO音频单元C数组缓冲区中的音频回调。