2012-01-03 3 views
0

AVAudioPlayer 객체를 사용하여 게임이 끝나기 전까지 계속 진행해야하는 aif 사운드 파일을 재생합니다. 나는 AVAudioPlayer의 바르가 backgroundPlayer라고하고 내가있는 viewDidLoad 방법에 그것을 설정 :AVAudioPlayer를 재생하면 지연이 발생합니다.

-(void)viewDidLoad{ 
NSURL *backgroundURL=[NSURL fileURLWithPath:[[NSBundle   
mainBundle]pathForResource:@"bgLoop" ofType:@"aif"]]; 
backgroundPlayer=[[[AVAudioPlayer alloc] initWithContentsOfURL:backgroundURL  
                   error:nil] retain]; 
backgroundAudioPlayer.numberOfLoops=-1; 

}

을 그리고 난 viewWillAppear 방법에서 재생할 :

-(void)viewWillAppear:(BOOL)animated{  
    TrafficAppDelegate *delegate=[UIApplication sharedApplication].delegate; 
    if (delegate.shouldPlaySFX) 
     [backgroundPlayer play]; 
} 

이 모든 설정하는 경우를 뷰 컨트롤러가 스택에 밀어 넣기 위해 내 단추를 누른다. 2-3 초 정도 걸리면 뷰가 나타난다. viewWillAppear 메서드에서 [backgroundPlayer play] 명령에 주석을 달면 지연이 사라집니다. 이런 종류의 사운드를 재생할 때 AVAudioPlayer 클래스를 사용해야하지 않습니까? 나는 소리가 몇 분, 심지어 몇 시간 동안 계속 될 수 있다는 것을 의미합니다. 선택이 문제가 아니라면 지연을 유발할 수있는 것은 무엇입니까? 미리 감사드립니다.

답변

2

[backgroundPlayer prepareToPlay]을 코드에 추가 한 후이 사례를 사용해 보셨습니까? 나는 이것이 지연 문제를 해결할 것이라고 믿는다.

0

소리를 처음 재생하려고 할 때 발생합니다. 앱을 필요할 때 짧은 응답으로 AVAudioPlayer이 반응하도록 할 수 있습니다.

관련 문제