2013-03-03 1 views
0

iPodMusicPlayerController으로 음악 앱을하고 있습니다.MPMusicPlayerController가 멈추고 iOS의 어딘가에서 오디오를 재생할 때 다시 시작할 수 없습니다.

저는 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]; 
    } 

또한 알림을 등록했습니다.

어떻게 해결할 수 있습니까?

답변

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]; 
    }