2012-03-10 1 views
0

오디오 장치를 기반으로하는 Objective-C 오디오 응용 프로그램을 가지고 있고 사운드를 재생 한 다음 중지 한 다음 다른 사운드를 재생하면 첫 번째 사운드의 마지막 버퍼가 들립니다. 나는 ioData 나 다른 것을 해방해야한다고 생각하지만, 모든 시도는 실패했다.메모리에서 재생 마지막 버퍼 제거

static OSStatus playbackCallback(void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData) 
{ 
    RemoteIOPlayer *remoteIOplayer = (__bridge RemoteIOPlayer *)inRefCon; 

    for (int i = 0 ; i < ioData->mNumberBuffers; i++) 
    { 
     AudioBuffer buffer = ioData->mBuffers[i]; 
     UInt32 *frameBuffer = buffer.mData; 

     for (int j = 0; j < inNumberFrames; j++) 
     { 
      frameBuffer[j]= [[remoteIOplayer inMemoryAudioFile] getNextPacket:inBusNumber]; 
     } 
    } 
    return noErr; 
} 

제발 도와주세요 :) 감사합니다.

답변

0

좋아요. 오우 그래프를 초기화하지 않고 사용자가 멈 추면 다시 초기화하십시오.