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