バッファを読み取るオーディオ ユニットがあり、コールバック関数でメモリが増加しています。うまく機能しますが、このリークを解決するために多くの時間を費やしています。
問題を解決した後、Apple によって記述された基本的な構成コードがメモリの増加 (1 秒あたり 100k) を引き起こしていることがわかりました。
これは、問題のある他のすべてのものを取得した後の私のコールバックです:
AudioComponentInstance audioUnit;
static OSStatus recordingCallback(void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData)
{
AudioBuffer buffer;
buffer.mNumberChannels = 1;
buffer.mDataByteSize = inNumberFrames * 2;
buffer.mData = malloc( inNumberFrames * 2 );
// Put buffer in a AudioBufferList
AudioBufferList bufferList;
bufferList.mNumberBuffers = 1;
bufferList.mBuffers[0] = buffer;
OSStatus status;
// problematic block ******
status = AudioUnitRender(audioUnit,
ioActionFlags,
inTimeStamp,
inBusNumber,
inNumberFrames,
&bufferList);
//end of problem block ******
free(buffer.mData);
}
そのブロックを削除すると問題が解決します。
audioUnit にはプロパティが必要ですか? ここで私の基本的な問題は何ですか?ありがとう。