我已经完成了正弦波发生器的音频单元教程并完成了一些阅读,我基本了解它是如何工作的。我真的想为我的应用程序做的是播放一个简短的声音文件以响应一些外部事件。这些声音的持续时间约为1-2秒,并且发生速度约为每秒1-2次。
基本上我现在正在尝试弄清楚如何使用我的音频单元播放实际音频文件,而不是生成正弦波。所以基本上我的问题是,如何让音频单元播放音频文件?
我是否只是将音频文件中的字节读入渲染回调中的缓冲区? (如果是这样,我需要处理什么类来打开/转换/解压缩/读取音频文件)
或者是否有一些更简单的方法,我可以将整个缓冲区交给它并让它发挥作用?
我需要查看完成此操作的特定类或API的任何名称都非常有用。
答案 0 :(得分:3)
好的,检查一下: http://developer.apple.com/library/ios/samplecode/MixerHost/Introduction/Intro.html
编辑:这是一个示例项目。此页面包含详细说明,其中包含用于设置常用配置的内联代码:http://developer.apple.com/library/ios/ipad/#DOCUMENTATION/MusicAudio/Conceptual/AudioUnitHostingGuide_iOS/ConstructingAudioUnitApps/ConstructingAudioUnitApps.html#//apple_ref/doc/uid/TP40009492-CH16-SW1
答案 1 :(得分:1)
如果您不介意与IOS 5+绑定,您应该查看AUFilePlayer。使用回调更加容易,您不必担心设置自己的环形缓冲区(如果您想避免在启动时将所有音频数据加载到内存中,则需要执行此操作)< / p>