如何获得AVPlayer的中断开始/结束事件

时间:2013-03-19 15:04:08

标签: iphone avplayer avaudiosession interruption

我正在使用AVPlayer播放音频文件。 我实施了AVAudioSessionInterruptionNotification

    AVAudioSession *session = [AVAudioSession sharedInstance];
    NSError *errorInAudio   = nil;
    [session setActive:YES error:&errorInAudio];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(interruption:) name:AVAudioSessionInterruptionNotification object:nil];

    [session setCategory:AVAudioSessionCategoryPlayback error:nil];

当应用处于前台(如语音控制)时出现中断时,它可以正常工作 但我在后台模式下制作应用程序并打开iPod播放器并开始播放。它的中断当时没有被调用,即使我的应用程序进入前台也是如此 可能是什么问题。请帮忙。

2 个答案:

答案 0 :(得分:4)

如果您使用AVAudioPlayer,则可以符合AVAudioPlayerDelegate,那么您可以实施- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag等方法

docs中列出了更多方法。

答案 1 :(得分:1)

要在AVPlayer在后​​台中断时收到通知,您可以收听AudioSession的通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerStopped) name:AVAudioSessionInterruptionNotification object:nil];