我收到警告“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:

10-08 15:43