iphone - AudioQueueFreeBuffer 警告

标签 iphone audio audioqueueservices

我收到 API AudioQueueFreeBuffer 的警告“AudioQueueObject::FreeBuffer: AQBuffer * 0x6273fd0 的入队计数为 1”...如何避免此警告?

我在 AudioQueueFreeBuffer API 中收到此警告

        for (int i = 0; i < kNumberBuffers; ++i) {

            if(mAudioInfo.mBuffers[i] != NULL)
            {
                AudioQueueFreeBuffer(mAudioInfo.mQueue, mAudioInfo.mBuffers[i]);
                mAudioInfo.mBuffers[i] = NULL;
            }   
            XThrowIfError(AudioQueueAllocateBuffer(mAudioInfo.mQueue, mBufferByteSize, &mAudioInfo.mBuffers[i]), "AudioQueueAllocateBuffer failed");

            AQTestBufferCallback (&mAudioInfo, mAudioInfo.mQueue, mAudioInfo.mBuffers[i]);

            if (mAudioInfo.mDone) break;
        }

最佳答案

当您尝试对已在正在运行的 AudioQueue 中排队的缓冲区调用 AudioQueueFreeBuffer() 时,会发生这种情况。在尝试释放缓冲区之前,您应该在关联的 AudioQueue 上调用 AudioQueueStop()。

The doc's for AudioQueueFreeBuffer() say:

Call this function only if you want to dispose of a particular buffer while continuing to use an audio queue. You can dispose of a buffer only when the audio queue that owns it is stopped (that is, not processing audio data).

关于iphone - AudioQueueFreeBuffer 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4860988/

相关文章:

iphone - 将 UITableView 置于编辑模式而不移动 TextLabel?

javascript - 单击按钮后播放HTML音频

python - 安装成功后无法导入库

ios - 如何使用 AudioQueueEnqueueBuffer 播放静音...与 kAudioFormatMPEG4AAC_HE(VBR)

iphone - 音频处理: Playing with volume level

iphone - Game Center 对接会 GKTurnBasedMatch 有明显滞后(约 1 分钟)

ios - xcode 在上传存档时坚持使用 iTunes 商店验证 Assets

iphone - 为什么除非我首先访问父类的描述,否则 NSManagedObject 关系对象无法正确加载?

android - 读取音频文件以将值保存在Android中的文本文件中

cocoa - 如何检查 AudioQueue 中的当前时间和持续时间