iOS AudioQueue播放AAC数据总是延迟2-3秒

Posted

技术标签:

【中文标题】iOS AudioQueue播放AAC数据总是延迟2-3秒【英文标题】:iOS AudioQueue playing AAC data always delay for 2-3 seconds 【发布时间】:2018-07-26 12:39:27 【问题描述】:

最近我在使用 AudioQueue 播放网络 AAC 数据。我的计划是,一旦收到 AAC 数据,audioqueue 将这个缓冲区排入队列并立即播放。

我在启动audioQueue时,使用AudioQueueStart(audioQueue, NULL)尽快启动audioQueue。

但是,当我打印日志时,我注意到 AAC 缓冲区立即被 AudioQueueEnqueueBuffer(audioQueue, buffer, 0, NULL) 排队,但在排队缓冲区后播放的声音延迟了大约 2-3 秒。这意味着我在开始时接收并排队数据,但第一个声音在 2-3 秒后开始。

我想知道是不是因为音频队列服务将 AAC 解码为 PCM 本身,所以声音延迟了。如果是这样,我应该自己解码 AAC 并改用音频单元吗?

我迷茫了一段时间,希望有人能点亮我!

【问题讨论】:

【参考方案1】:

终于找到原因了。当 AAC 数据迟到时,我暂停 audioQueue 并在数据到来时重新开始。 PAUSE 操作会导致播放延迟。

【讨论】:

以上是关于iOS AudioQueue播放AAC数据总是延迟2-3秒的主要内容,如果未能解决你的问题,请参考以下文章

入队数据包延迟时,IOS AudioQueue 不播放

iOS语音对讲(三)FFmpeg实时解码AAC并播放PCM

来自WebSocket的WebAudio AAC流媒体播放

ios 使用audioQueue 录音以及播放 (pcm)

在 iOS 上播放 MP3 或 AAC 文件都有哪些音频播放选项?

AudioQueue如何找出排队数据的播放长度