Я использую объект AVAudioPlayer для воспроизведения звукового файла AIF, который должен продолжаться до тех пор, пока игра не закончится.У меня есть ивар AVAudioPlayer с именем backgroundPlayer, и я настроил его в методе viewDidLoad:
-(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 секунд, и только после этого появляется вид.Если я прокомментирую команду [backgroundPlayer play] в методе viewWillAppear, задержка исчезнет.Разве я не должен использовать класс AVAudioPlayer для воспроизведения такого рода звуков?Я имею в виду, что звук может продолжаться минуты, даже часы. Если выбор не является проблемой, то что может вызвать задержку?Заранее спасибо