【发布时间】:2012-04-02 08:35:42
【问题描述】:
我正在尝试播放我在 Objective-C 中创建的示例音频值的 NSArray。我已经毫无问题地生成了这些值,但是如何通过 iPhone 回放它们呢?
谢谢
【问题讨论】:
标签: objective-c ios core-audio
我正在尝试播放我在 Objective-C 中创建的示例音频值的 NSArray。我已经毫无问题地生成了这些值,但是如何通过 iPhone 回放它们呢?
谢谢
【问题讨论】:
标签: objective-c ios core-audio
我建议将 NSArray 转换为 NSData 对象,然后使用 AVAudioPlayer 方法 initWithData:error: (see here) 加载为可播放的音频。 AVAudioPlayer 的优点是相对于 Audio Queue 和 Audio Unit 方法使用起来非常简单。
如何将 NSArray 转换为 NSData 取决于您的样本类型(this SO post 可能会告诉您如何做到这一点,尽管 NSKeyedArchiver 归档过程可能会影响您的样本)。我建议,如果您的示例生成过程允许,只需将您的示例创建为 NSData 对象并跳过此类转换。
【讨论】:
将 NSArray 中的值复制到适当缩放的 PCM 样本的 C 数组中。然后,您可以通过添加 RIFF 标头将此数组转换为 WAV 文件并使用 AVAudioPlayer 播放此文件,或者您可以直接将 PCM 样本输入音频队列的 C 数组缓冲区或音频回调中的 RemoteIO 音频单元。
【讨论】: