2012-07-07 84 views
2

我已经运行了一个正弦波发生器的音频单元教程,并做了一些阅读,我基本上明白它是如何工作的。我真的想为我的应用做什么,就是播放一个简短的声音文件来回应一些外部事件。这些声音的持续时间约为1-2秒,发生频率约为每秒1-2次。使用音频单元播放几个重叠的短音频文件

基本上我现在正在试图找出如何使用我的音频单元播放实际的音频文件,而不是生成正弦波。所以基本上我的问题是,如何让音频单元播放音频文件?

我是否简单地将音频文件中的字节读入渲染回调中的缓冲区中? (如果是的话,我需要处理什么类来打开/转换/解压缩/读取音频文件)

或者是否有一些简单的方法,我可能只是交出整个缓冲区并告诉它播放?

任何特定类或API的名称我需要看看完成这将是非常有益的。

+0

在Apple网站上使用Channel Mixer单元应该有一个代码示例。现在没有链接,但是我基于它创建了我的声音引擎,并且我的游戏同时播放了几个短而未压缩的效果。 – 2012-07-07 03:42:30

回答

3
+0

感谢您的链接。我现在正在跟踪该计划。它没有多少乐趣,哈哈。 – wbarksdale 2012-07-07 19:25:20

+1

这只是设置AUGraph的代码,不过请手动输入,不要复制粘贴。你会知道的东西! – 2012-07-07 19:58:36

+0

对不起,只提供一个链接;我在iPhone上! – 2012-07-07 19:59:30

1

如果您不介意绑定到IOS 5+,则应该查看AUFilePlayer。使用回调会非常容易,并且您不必担心设置自己的环形缓冲区(如果要避免在启动时将所有音频数据加载到内存中,则需要执行此操作)

+0

从来没有听说过。它是否也是低延迟? – 2012-08-18 04:41:10

+0

是的,它是低延迟 – Beleg 2012-09-05 20:09:33

+0

好,我会检查出来的! – 2012-09-06 02:49:43