2009-08-24 6 views
0

AVAudioPlayer가 재전송되지 않는 것으로 보입니다. 그래서, 완료 플레이를 soundfx 1 초 지연 것이다 다음은, 다음, 다시 재생보다는 1 초 지연에 - 그리고 결과 중복 재생 내가 원하는 :AVAudioPlayer의 대여가 올바르지 않습니까?

// ... 

AVAudioPlayer* soundfx = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:nil]; 


(void) makeSomeNoise { 

    [soundfx play]; 
    sleep(1); 
    [soundfx play]; 


} 

내가 다음 NSOperation에 의존해야 - 스레딩 - 달성하기 위해 재생 중첩의 목표는 무엇입니까?

참고 : 계층 적 사운드 재생에 적합한 형식 인 IMA4/ADPCM 형식을 사용하고 있습니다.

건배, 더그

답변

1

그것은 AVAudioPlayer 재진입 아니라고 아니다. runloop이 끝난 후 AVSudioPlayer가 사운드를 재생하기 시작하고 makeSomeNoise 함수가 아닌 것입니다. 1 초 지연으로 사운드를 재생하려면 다음을 수행하십시오.

(void) makeSomeNoise { 
    [soundfx play]; 
    [soundfx performSelector:play withObject: nil afterDelay:1.0]; 
} 
관련 문제