ここで何かが恋しくなるかもしれません。私は自分のアプリで黒いリモコンを使いたいと思っていて、このコードを本質的にWWDC 2017の話題から得ました。それは...MPRemoteCommandCenter.shared()をtvOSで動作させるようにする
メディア再生の一貫性と直感的な制御は、tvOS上の多くのアプリケーションの鍵であり、MPNowPlayingInfoCenterとMPRemoteCommandCenterを適切に使用して設定することは、優れたユーザーエクスペリエンスを実現する上で非常に重要です。これらのフレームワークを深く理解し、アプリがSiri、Siri Remote、またはiOS Remoteアプリを使用して制御されているかどうかをシームレスに確認する方法を学びます。
私はのtvOSアプリのviewDidLoad
にこれらの行を追加しましたが、基本的には何もしません。
var commandCenter = MPRemoteCommandCenter.shared()
override func viewDidLoad() {
super.viewDidLoad()
commandCenter.playCommand.isEnabled = true
commandCenter.pauseCommand.isEnabled = true
commandCenter.playCommand.addTarget { (commandEvent) -> MPRemoteCommandHandlerStatus in
print("You Pressed play")
return .success
}
commandCenter.pauseCommand.addTarget { (commandEvent) -> MPRemoteCommandHandlerStatus in
print("You Pressed pause")
return .success
}
}
私はこのアプリケーションを実行し、黒いリモコンの再生/一時停止ボタンを試しても何もデバッグコンソールに表示されません。また、バックグラウンドモードに関連するplistをいくつか追加しました...これがうまくいけばいいですか?あなたのアプリがフォアグラウンドにあるときMPRemoteCommandCenter
で
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
<string>external-accessory</string>
</array>
再生は、あなたのアプリがSiri、Siri Remote、またはiOS Remoteアプリケーションを使って制御されているかどうかにかかわらず、tvOS上の多くのアプリにとって重要です。 – user3069232
一貫性は良好で望ましいです。一貫性を得るには、複数のAPIを実装する必要があります。 MPRemoteCommandCenterは、UIGestureRecognizerや他の「通常の」アプリ内インタラクションではキャプチャできないコマンドを受信するためのものです。コマンドを受け入れる両方の方法を実装したいと思うでしょう。 –