У меня есть приложение, которое при запуске воспроизводит вступительный клип. Следующий код находится в - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
в appDelegate.m, который работает просто великолепно.
NSLog(@"PLAY SOUND CLIP WHILE LOADING APP");
NSURL *clip = [[NSBundle mainBundle] URLForResource: @"intro" withExtension:@"caf"];
self.startupPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:clip error:NULL];
[self.startupPlayer play];
Если пользователь изменит вид до того, как закончится вступительный звук, он все равно продолжит воспроизводиться. Я поместил этот код за пределы - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
, думая, что это поможет, но нет.
-(void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
// Stop Sound
[self.startupPlayer stop];
}
Я подумал, может быть, если я поставлю оператор if сразу после запроса на загрузку, это может помочь, но это не сработало. См. пример:
NSLog(@"PLAY SOUND CLIP WHILE LOADING APP");
NSURL *clip = [[NSBundle mainBundle] URLForResource: @"intro" withExtension:@"caf"];
self.startupPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:clip error:NULL];
[self.startupPlayer play];
if ([viewDidDisappear == YES]) {
[self.startupPlayer stop];
}
Любые предложения, которые остановят вступительный звук, если пользователь изменит представление до того, как этот клип завершит воспроизведение, были бы замечательными. О, и я успешно использовал «viewWillDisappear» в других частях приложения, но в этом случае я выбираю «viewDidDisappear», потому что последний тоже не работал. Так что я в тупике. Заранее спасибо.
РЕДАКТИРОВАТЬ: Итак, я переместил viewWillDisappear в свой MainViewController и вызвал делегата, но мне все еще не повезло. Опять же, помощь будет оценена по достоинству.