音频队列:播放与录制全解析
音频队列播放基础
在音频处理中,音频队列(Audio Queue)是一种强大的工具,可用于播放和录制音频。音频队列的工作方式可以类比为传送带上的盒子,这些盒子代表着音频缓冲区。当盒子被清空内容(但内存不会归零)后,它们会沿着传送带返回,等待重新填充。
启动音频队列的代码如下:
AudioQueueStart(aqc.queue, NULL);
当你准备关闭音频队列时,可使用 AudioQueueDispose 函数:
AudioQueueDispose(aqc.queue, true);
回调函数
音频队列启动后,应用程序的回调函数会每 1/60 秒被调用一次,用于将新的音频数据填充到缓冲区中。当一个缓冲区被清空并准备重新填充时,音频队列会调用你在 AudioQueueNewOutput 中指定的回调函数。这个回调函数负责将原始音频数据填充到缓冲区,然后将音频输出到扬声器。
回调函数的示例代码如下:
static void AQBufferCallback(
void *aqc,
AudioQueueRef inQ,
AudioQueueBufferRef outQB)
{
AQCallbackStruct *inData = (AQCallbackS
超级会员免费看
订阅专栏 解锁全文
884

被折叠的 条评论
为什么被折叠?



