我有一个应用程序,它在启动时会播放介绍剪辑。以下代码在- (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 中并调用了委托,但我仍然没有任何运气。再次,我们将不胜感激。