我正在使用AVAudioPlayer播放音乐(支持背景)。我的问题是,如果我想在听音乐的时候给某人打电话,如何在通话后恢复音乐?我已经实现了AVAudioPlayer的委托方法:
- (void)audioPlayerEndInterruption:(AVAudioPlayer *)thePlayer {
[[AVAudioSession sharedInstance] setActive:YES error:nil];
[self.player play];
}
但这不允许音乐继续播放。
我也试过使用AVAudioSessionDelegate方法(只是一试):
- (void)viewDidLoad {
[[AVAudioSession sharedInstance] setDelegate:self];
}
- (void)endInterruption
{
[[AVAudioSession sharedInstance] setActive:YES error:nil];
[self.player play];
}
但这又不会导致音乐恢复。关于如何解决这个问题的任何想法?
答案 0 :(得分:1)
你的委托方法实施不好。见文档
- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player
- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player withFlags:(NSUInteger)flags
所以尝试像这样实现它们,它应该正常工作
答案 1 :(得分:1)
在iOS上,应用无法在后台播放音频。如果您的应用程序的音频因前景应用已控制音频会话而停止,则(目前)无法将其取回。
答案 2 :(得分:1)
你可以恢复它。完成音频会话后,您必须通知其他应用程序我的应用程序停用音频会话,您可以使用它。使用以下代码。
[[AVAudioSession sharedInstance] setActive:NO withFlags:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&error];