MPMusicPlayerController停止并且在iOS中某处播放音频时无法恢复

时间:2013-03-03 13:34:55

标签: ios cocoa-touch mpmusicplayercontroller

我正在使用iPodMusicPlayerController进行音乐应用。

我很喜欢播放iPod库中的歌曲。

然而有一点。

当我从iPod库播放歌曲,我去野生动物园或其他东西,从网上播放音乐或电影时,我的应用程序停止播放。

从网上播放后,我会回到我的应用程序并点按不再有效的播放按钮。

这是我的playOrPause动作代码。

MPMusicPlaybackState playbackState = self.player.playbackState;
    if (playbackState == MPMusicPlaybackStateStopped || playbackState == MPMusicPlaybackStatePaused)
    {
        [self.playOrPauseButton setImage:[UIImage imageNamed:@"pauseiCon"] forState:UIControlStateNormal];
        [self.player play];
    }

    else if (playbackState == MPMusicPlaybackStatePlaying)
    {
        [self.playOrPauseButton setImage:[UIImage imageNamed:@"playiCon"] forState:UIControlStateNormal];
        [self.player pause];
    }

我也注册了通知。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

我为自己的问题找到了解决方案。 :d

首先使用MPMusicPlaybackStateInterrupted

注册通知

我们可以使用该属性检查中断。

MPMusicPlaybackState playbackState = [self.player playbackState];

    if (playbackState == MPMusicPlaybackStatePaused || playbackState == MPMusicPlaybackStateInterrupted)
    {
        [self.playOrPauseButton setImage:[UIImage imageNamed:@"playiCon"] forState:UIControlStateNormal];
    }

    else if (playbackState == MPMusicPlaybackStatePlaying)
    {
        [self.playOrPauseButton setImage:[UIImage imageNamed:@"pauseiCon"] forState:UIControlStateNormal];
    }

并在playOrPause操作

中添加以下代码
MPMusicPlaybackState playbackState = self.player.playbackState;

    if (playbackState == MPMusicPlaybackStateStopped || playbackState == MPMusicPlaybackStatePaused || playbackState == MPMusicPlaybackStateInterrupted)
    {
        [self.playOrPauseButton setImage:[UIImage imageNamed:@"pauseiCon"] forState:UIControlStateNormal];
        [self.player play];
    }

    else if (playbackState == MPMusicPlaybackStatePlaying)
    {
        [self.playOrPauseButton setImage:[UIImage imageNamed:@"playiCon"] forState:UIControlStateNormal];
        [self.player pause];
    }