多个音频队列的同步
Posted
技术标签:
【中文标题】多个音频队列的同步【英文标题】:Synchronization of Multiple Audio Queues 【发布时间】:2016-06-28 14:07:57 【问题描述】:Apple 的音频队列文档声称具有“其他高级功能支持多个音频队列的预定播放和同步”。但是,在网络上的任何地方都找不到相同的文档。
我有三个音频队列,需要同步播放/停止/暂停/恢复。任何指针表示赞赏。
【问题讨论】:
【参考方案1】:AudioQueue
头文件中有许多使用 AudioTimeStamp
的有趣函数。
特别是AudioQueueStart
有一个名为inStartTime
的AudioTimeStamp
参数。
也许您可以使用mHostTime
字段来指定主机的时基,mach_absolute_time
您应该能够使用它来同步多个音频队列。
那么我猜你会使用AudioQueueEnqueueBufferWithParameters
中的inStartTime
参数在正确的时间对缓冲区进行排队。不知道如何同步停止...
就我个人而言,我发现AudioQueues
比 LPCM 更让人心痛,所以我会使用远程 io 音频单元(或现代等效设备)自己混合和输出三个音频流,因为你可以同步播放,继续/stop,免费暂停。
【讨论】:
实际上,我不断地从套接字连接获取音频缓冲区。所以在这里我面临与视频同步的问题。有什么线索可以挽救我的一天吗? 确保只有一个时间线(可能是主机时间)并将音频和视频映射到该时间线。并提出一个新问题,详细说明您正在使用什么 API。 使用 AudioQueueServices API。以上是关于多个音频队列的同步的主要内容,如果未能解决你的问题,请参考以下文章