【问题标题】:AudioQueueOfflineRender returning empty dataAudioQueueOfflineRender 返回空数据
【发布时间】:2009-09-08 09:56:54
【问题描述】:

我在使用 AudioQueueOfflineRender 解码 AAC 数据时遇到问题。

当我在调用后检查缓冲区时,它总是充满了空数据。我确保输入缓冲区有效并且提供了数据包描述。

我搜索并发现其他一些人遇到了同样的问题: http://lists.apple.com/archives/Coreaudio-api/2008/Jul/msg00119.html

另外,inTimestamp 参数对我来说没有意义。为什么渲染器要关心音频中缓冲区的开头对应的位置?如果我传入 NULL,该函数会引发错误,所以无论如何我都会传入时间戳。

【问题讨论】:

    标签: iphone core-audio audioqueueservices


    【解决方案1】:

    您是否阅读过Technical Q&A QA1562Audio Queue Guide?具体来说,它声明您必须在开始后立即请求 0 帧:

    AudioQueueStart(myInfo.mQueue, NULL);
    
    AudioTimeStamp theTimeStamp;
    theTimeStamp.mFlags = kAudioTimeStampSampleTimeValid;
    theTimeStamp.mSampleTime = 0;
    
    /*
        Important - We need to call this once asking for 0 frames!
    */
    AudioQueueOfflineRender(myInfo.mQueue, &theTimeStamp, captureBuffer, 0);
    

    【讨论】:

    • 是的,我有这行,因为它似乎是一个要求。
    • 时间戳很重要,QA1562说明了这一点。你是 theTimeStamp.mSampleTime += writeFrames; 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多