2012-05-10 19 views
0

我可以在OS X 10.7使用正在由现有的对象,我不能改变产生的,并传递给一个类的对象输出线性PCM音频帧什么API我的创作?我无法访问始发音频流,只是数据包。 CoreAudio AudioUnit或AudioQueue,或者AVAudioPlayer可以设置为在发送到我的对象时简单地播放这些帧吗?OS X播放音频帧是他们送给我的

回答

1

有一个Mac OS X或iOS装置,因为它们是由现有的源产生的,可以播放PCM音频样本流上没有公共API。

音频队列和(RemoteIO)音频单元API都是基于回调(“拉”),以严格的采样率运行,并具有实时要求(例如,您不能等待回调中的数据) 。您的对象必须将音频PCM帧(由源生成)保存在其自己的缓冲区或数据结构中,然后以音频回调请求的数量从这些缓冲区中复制样本。你的对象也可以在启动音频之前预装一定量的缓冲区,自适应溢句柄,如果样本在低于音频回调需要的速度,如果它得到更多的数据比它可以某处缓冲并播放所产生,以及处理溢出及时。