0

我正在使用iPodMusicPlayerController.

我可以播放 iPod 库中的歌曲。

然而有一件事。

当我从 iPod 库中播放歌曲并且我去 safari 或其他东西并从网络播放音乐或电影时,我的应用程序停止播放。

从网络播放后,我回到我的应用程序并点击不再起作用的播放按钮。

这是我的 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];
    }

我还注册了通知。

我该如何解决?

4

1 回答 1

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并在Action中添加以下代码

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];
    }
于 2013-03-03T13:55:23.367 回答