OS X 播放音频帧是不是发送给我
Posted
技术标签:
【中文标题】OS X 播放音频帧是不是发送给我【英文标题】:OS X play Audio Frames are they are sent to meOS X 播放音频帧是否发送给我 【发布时间】:2012-05-10 19:15:33 【问题描述】:我可以在 OS X 10.7 中使用什么 API 来输出由我无法更改的现有对象生成的线性 PCM 音频帧,并传递给我创建的类的对象?我无法访问原始音频流,只能访问数据包。可以设置 CoreAudio AudioUnit 或 AudioQueue,或者 AVAudioPlayer 来简单地播放这些帧,因为它们被发送到我的对象?
【问题讨论】:
【参考方案1】:Mac OS X 或 ios 设备上没有公共 API 可以播放由现有源生成的 PCM 音频样本流。
Audio Queue 和 (RemoteIO) Audio Unit API 都是基于回调(“pull”)的,以严格的采样率运行,并且具有实时要求(例如,您不能只等待回调中的数据)。您的对象必须将由源生成的音频 PCM 帧保存在其自己的缓冲区或数据结构中,然后以音频回调请求的数量从这些缓冲区中复制样本。您的对象可能还必须在开始音频之前预加载一定数量的缓冲区,如果以低于音频回调要求的速率生成样本,则自适应地处理下溢,以及如果它接收到的数据多于它可以在某处缓冲并播放的数据,则处理溢出及时。
【讨论】:
以上是关于OS X 播放音频帧是不是发送给我的主要内容,如果未能解决你的问题,请参考以下文章