打电话(iOS)?

我正在使用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];
}

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


你的代码奇怪,你告诉你使用AVAudioPlayer,为什么然后实现AVAudioSessionDelegate?

而且你有不好的委托方法的实现。 请参阅文档

来自AVAudioPlayerDelegate:

- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player

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

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


在iOS上,应用程序无法在背景中播放音频。 如果您的应用程序的音频因为前台应用程序控制了音频会话而停止,则(当前)无法将其恢复。


你可以恢复它。 完成音频会话后,您必须通知其他应用程序,我的应用程序停用音频会话,然后才能使用它。 使用下面的代码。

[[AVAudioSession sharedInstance] setActive:NO withFlags:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&error];
链接地址: http://www.djcxy.com/p/9865.html

上一篇: going phone call (iOS)?

下一篇: C typedef enum in global constants file