- (void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [NSURL fileURLWithPath: [NSString stringWithFormat:@"%@/Intro2.mp3", [[NSBundle mainBundle] resourcePath]]];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = -1;
if (audioPlayer == nil)
NSLog([error description]);
else
[audioPlayer play];
}
我的背景音乐在应用加载初始视图控制器时播放,并且循环播放良好。当我离开初始视图控制器时,音乐将继续在整个应用程序中播放,我希望在离开初始视图控制器时停止播放音乐。
另外,也许这无关紧要,但是我在这行代码上有一个问题(黄色!):
NSLog([error description]);
最佳答案
如果音乐继续播放,则表示视图控制器仍然保留。例如,它是导航视图控制器的根视图控制器。
要在不再显示视图控制器时停止音乐,应使用方法viewWillDisappear
:
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[audioPlayer stop]; // Or pause
}
如果希望在再次显示视图控制器时恢复音乐,请使用方法
viewWillAppear
:- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[audioPlayer play];
}
要删除警告,请更改以下行:
NSLog([error description]);
变成:
NSLog(@"%@", [error description]);
关于iphone - 离开Initial View Controller时停止播放音乐(使用AVAudioPlayer),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9861453/