如何在外出电话(iOS)后恢复背景音乐?

Chi*_*ong 7 iphone audio resume background

我正在使用AVAudioPlayer播放音乐(支持背景).我的问题是,如果我想在听音乐的时候给某人打电话,如何在通话后恢复音乐?我实现了AVAudioPlayer的委托方法:

- (void)audioPlayerEndInterruption:(AVAudioPlayer *)thePlayer {
    [[AVAudioSession sharedInstance] setActive:YES error:nil];
    [self.player play];
}
Run Code Online (Sandbox Code Playgroud)

但这不会让音乐继续下去.

我也试过使用AVAudioSessionDelegate方法(只是一试):

- (void)viewDidLoad {
    [[AVAudioSession sharedInstance] setDelegate:self];
}

- (void)endInterruption
{
    [[AVAudioSession sharedInstance] setActive:YES error:nil];
    [self.player play];
}
Run Code Online (Sandbox Code Playgroud)

但这又不会导致音乐恢复.有关如何解决这个问题的任何想法?

Mar*_*era 1

你的代码奇怪的是,你告诉你确实使用了 AVAudioPlayer,为什么你还要实现 AVAudioSessionDelegate?

而且委托方法的实现很糟糕。查看文档

来自 AVAudioPlayerDelegate:

- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player

- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player withFlags:(NSUInteger)flags

所以尝试像这样实现它们,它应该可以正常工作