2016-09-13 18 views
3

IOSの10に誤って反応し、この時点以降、再生/一時停止コントロールボタンは異なる反応します。すべてのタップに管理センターにボタンを一時停止/ プレーを変更すべきではありません一時停止することはできませんMPNowPlayingInfoCenterリモートコントロールは<strong>制御センタ</strong> UIを再加工し、IOSの10</strong><strong>で

コンテンツ。

iOSの10
する前に、それはおそらくMPNowPlayingInfoPropertyPlaybackRateをチェックしていたし、コンテンツが一時停止されなかった場合、それは、リモートコントロールを変更しませんでした。 iOS 10では、毎時MPNowPlayingInfoPropertyPlaybackRateを無視して変更されます。

+0

質問を明確にすることはできますか?一時停止できないコンテンツの場合、一時停止ボタンをタップするとボタンの状態は変更されますが、コンテンツは一時停止されません。 – JAL

+0

確かに。しかし、いつコンテンツを一時停止できるかは問題ではありません。例えば。私が 'remoteControlReceivedWithEvent'コールバックを完全に無視すると、ボタンはとにかに変わります。 –

+0

私は古い 'UIEvent'デリゲートの使用を強くお勧めし、[' MPRemoteCommandCenter'](https://developer.apple.com/reference/mediaplayer/mpremotecommandcenter)に切り替えます。私の答え[ここ](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が変更されてもコマンドセンターボタンは更新されません。例えば。 MPNowPlayingInfoPropertyPlaybackRate = 0を指定すると、iOS 7-9の再生が一時停止され(ロック画面の「再生」アイコン)しかし、iOS10ではありません。 – holm50

関連する問題