2010-11-19 2 views
0

Apple의 MixerHostAudio 클래스를 사용하여 사용자가 지정한 오디오 파일을 믹스하고 재생하려고합니다.Apple의 MixerHostAudio 클래스를 사용하여 오디오 파일을 재생할 때의 문제

클래스 파일을 여기에서 찾을 수 있습니다 : http://developer.apple.com/library/ios/#samplecode/MixerHost/Listings/Classes_MixerHostAudio_h.html

는 MixerHostAudio 클래스는 사용자가 지정한 파일을 재생하려면, 나는 파일의 NSURL과 클래스를 인스턴스화. 이것은 첫 번째 인스턴스화에 매우 효과적이지만, 변경을 원할 때 이전의 MixerHostAudio 클래스를 해제하고 새로운 하나를 할당하여 오디오 파일을 재생할 때 사운드가 재생되기 시작한 후 앱이 'EXC_BAD_ACCESS'초 후에 충돌합니다.

일부 디버깅을 한 후에 soundStructPointerArray의 AudioUnitSampleType (audioDataLeft 및 audioDataRight)이 nil 인 inputRenderCallback에서 오류가 발생했음을 확인했습니다.

이 오류가 발생한 코드의 일부입니다 : 나 오류를받지 않고 MixerHostAudio의 여러 인스턴스를 인스턴스화하는

for (UInt32 frameNumber = 0; frameNumber < inNumberFrames; ++frameNumber) { 
    outSamplesChannelLeft[frameNumber]     = dataInLeft[sampleNumber]; 
    if (isStereo) outSamplesChannelRight[frameNumber] = dataInRight[sampleNumber]; 

어쨌든 있나요?

도움을 주시면 대단히 감사하겠습니다.

답변

0

코드가 콜백의 모든 데이터를 재설정하지 않는 것 같습니다. 나는 그 소스 코드에 익숙하지 않다.하지만 모든 메모리 할당이 올바르게 처리되고 부실 포인터가 없는지 확인해야한다. 특히 충돌 이전에 두 번째 인스턴스를 인스턴스화한다고 말하기 때문에, 전역 변수 나 정적 변수가있을 때 그 주변에 매달려있는 변수를 찾으십시오.

관련 문제