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