0

xcode機器でメモリの増加が見られるので、問題を解決しようとした後、オーディオバッファのコールバックメソッドに、消去すると問題が解決されるコードのブロックがあることがわかりました。したがって、このコールバックは1秒間に何度も発生し、成長を引き起こします。

    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;
        //NSLog(@"%ld",inNumberFrames);
        buffer.mData = malloc( inNumberFrames * 2 );
        // Put buffer in a AudioBufferList
        AudioBufferList bufferList;
        bufferList.mNumberBuffers = 1;
        bufferList.mBuffers[0] = buffer;



        OSStatus status;
        status = AudioUnitRender(audioUnit, 
                                 ioActionFlags, 
                                 inTimeStamp, 
                                 inBusNumber, 
                                 inNumberFrames, 
                                 &bufferList); 
..
..
..
 free(buffer.mData);

あなたはそれを引き起こす可能性のあるいくつかの行をここで見ることができますか?これbuffer.mdataは無料です。私が自由にしない何か他のものがあります、それは成長しています。

ありがとう。

4

1 に答える 1

0

を解放するのを忘れたようですbufferList

于 2012-04-19T14:02:55.033 に答える