我试图使用TPCircularBufferCopyAudioBufferList
(显然)将AudioBufferList复制到TPCircularBuffer中。然而,它似乎没有理由返回EXC_BAD_ACCESS。我分配缓冲区
它打印(AudioBuffer) [1] = (mNumberChannels = 1, mDataByteSize = 8192, mData = void * = 0x057ba060)
为TPCircularBufferPrepareEmptyAudioBufferList
创建的AudioBufferList,而AudioBuffer被描述为(AudioBuffer [1]) mBuffers = {
[0] = (mNumberChannels = 2, mDataByteSize = 8192, mData = void * = 0x057dc000)
}
。 bytesToCopy是8192,所以我认为它没有理由失败。
外部代码如下所示:
TPCircularBufferCopyAudioBufferList(_circularBuffer, bufferList, NULL, kTPCircularBufferCopyAll, &_inputASBD);//Uses bufferList from EZAudioFile
我检查了_circularBuffer并且ABSD没有区别,因为它正在复制所有帧。
更新: 我注意到打印mData的日志会返回一个TDLogger实例?但是audioBufferList直接从EZAudioFile传递
Printing description of inBufferList->mBuffers[0].mData:
<TDLogger: 0x5834000>