我正在制作一个媒体播放应用程序,它从第三方解码器获得未压缩的线性PCM (über raw)音频,但当涉及到播放我能想象到的最简单的音频格式时,我简直要疯了。
最终的应用程序将逐步从服务器获取源文件流的PCM数据,所以我最初查看了音频队列(因为我似乎可以在移动中给它提供字节数),但事实证明这是胡说八道--特别是因为苹果自己的音频队列示例代码似乎进行了一次神奇的OpenGL和不必要的封装的实地考察。
我最终在(非流)原型期间使用了AVAudioPlayer;我现在创建了一个WAVE报头并将其添加到PCM数据的开头,以使AVAudioPlayer接受它(因为它不能接受原始的PCM)
显然,这对流媒体是没有用处的(WAVE在头部设置了整个文件长度,因此数据不能在移动中添加)。
..essentially:有没有办法只给iPhone OS一些PCM字节并让它播放它们?
发布于 2010-02-07 07:51:13
您应该重新查看AudioQueue代码。一旦你去除了所有的废话,你应该有大约2页的代码,外加一个回调,你可以在其中提供原始的PCM。此回调也与您的主循环同步,因此您甚至不必担心锁定问题。
https://stackoverflow.com/questions/2215009
复制相似问题