将 AudioUnit 回调与 NSOutputStream 同步



我正在使用音频单元录制音频,然后将该数据写入NSOutputStream,该流是我用来通过HTTP发布该数据的绑定对的一部分。我的问题是音频单元记录回调和NSOutputStream hasSpaceAvailable回调完全相互独立,所以我很快就得到了缓冲区欠载。有没有办法同步这两者或将录音回调直接映射到 NSOutputStream?

根据Apple DTS,您不应该在实时线程音频单元回调中进行任何网络或任何其他同步。

但是您不必直接在网络流的hasSpaceAvailable回调中发布数据。 您可以在该回调函数退出后发布数据,现在您知道空间可用,当数据可用时。 您还可以在循环队列或 fifo 中缓冲一些额外的音频数据,以便通常可以发送一些数据以覆盖网络速率变化和延迟抖动。

最新更新