- (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/

10-14 05:52