2016-09-13 13 views
3

아이폰 OS (10)에 잘못 반응 시간이 있기 때문에, 재생/일시 정지 제어 버튼은 다르게 반응한다./플레이를 변경할 때마다 탭에 제어 센터 버튼을 일시 정지하지 말아야 일시 정지 할 수없는MPNowPlayingInfoCenter 원격 제어는 제어 센터 <strong></strong> UI가 재 하였다 IO에서 10</strong><strong>에서

내용.

iOS 10 전까지는 아마도 MPNowPlayingInfoPropertyPlaybackRate을 확인하고 있었고 콘텐츠가 일시 중지되지 않은 경우 리모콘이 변경되지 않았습니다. iOS 10에서 즉시 변경되며 MPNowPlayingInfoPropertyPlaybackRate을 무시합니다.

+0

질문을 명확히 할 수 있습니까? 일시 중지 할 수없는 콘텐츠의 경우 일시 중지 버튼을 탭하면 버튼 상태가 변경되지만 콘텐츠는 일시 중지되지 않습니다. – JAL

+0

사실. 그러나 콘텐츠가 일시 중지 될 수 있는지 여부는 중요하지 않습니다. 예 : 'remoteControlReceivedWithEvent' 콜백을 완전히 무시하면 버튼이 변경됩니다. –

+0

이전 UIEvent 대리자를 사용하지 말고 ['MPRemoteCommandCenter'] (https://developer.apple.com/reference/mediaplayer/mpremotecommandcenter)로 전환하십시오. 내 대답 [here] (http://stackoverflow.com/a/33161774/2415822)이 도움이되는지 확인하십시오. – JAL

답변

4

UIEvent 리모컨 이벤트를 처리하는 대리자 방식은 더 이상 오디오/비디오 이벤트 처리에 권장되지 않습니다. 대신 MPRemoteCommandCenter은 단추 및 원격 제어 이벤트를 처리하거나 사용하지 않도록 설정하는 선택기 기반 인터페이스와 해당 이벤트를 처리하는 작업을 제공합니다. 내용이 일시 중지 안 또는, 당신은 명시 적으로 아무것도하지 않는 더미 선택을 위해, 단지 경우에도 작업을 제공 NO에 각 명령에 대해 enabled 속성을 설정해야합니다 재개 경우

제대로 제어 센터에있는 버튼을 비활성화 :

MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter sharedCommandCenter]; 

commandCenter.playCommand.enabled = NO; 
[commandCenter.playCommand addTarget:self action:@selector(playAudio)]; 

commandCenter.pauseCommand.enabled = NO; 
[commandCenter.pauseCommand addTarget:self action:@selector(pauseAudio)]; 

을 나는 AVPlayer를 here 작업에서 예제이 더에 정교한.

+0

CommandCenter를 사용하여 표시 할 단추와 단추에 바인딩 할 선택기를 정의하는 경우에도 MPNowPlayingInfoPropertyPlaybackRate가 변경 될 때 commandCenter 단추가 계속 업데이트되지 않습니다. 예 : MPNowPlayingInfoPropertyPlaybackRate = 0은 iOS 7-9에서 일시 중지 된 재생 및 잠금 화면의 '재생'아이콘을 나타냅니다. 그러나 iOS10에는 없습니다. – holm50