AudioQueueFreeBuffer警告
我得到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()。
AudioQueueFreeBuffer()的文档说:
仅当您想要在继续使用音频队列的同时处理特定缓冲区时调用此函数。 只有当拥有它的音频队列停止时(即不处理音频数据),才能处置缓冲区。
尝试这个:
for(int i = 0; i < NUM_BUFFERS; i++)
{
AudioQueueFreeBuffer(playState.queue, playState.buffers[i]);
}
AudioQueueDispose(playState.queue, true);
AudioFileClose(playState.audioFile);
链接地址: http://www.djcxy.com/p/4585.html
上一篇: AudioQueueFreeBuffer warning
下一篇: How to add or remove intent filter programmatically in android?