好吧,也許我錯過了這裏的東西。我想用我的應用程序使用黑色遙控器,並基本從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代碼...應該這樣做還是我在這裏錯過了點?
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
<string>external-accessory</string>
</array>
這不是我的印象得到了看WWDC會議251,它說「的媒體一致的和直觀的控制播放是tvOS上許多應用程序的關鍵,無論您的應用程序是使用Siri,Siri Remote還是iOS Remote應用程序進行控制「...? – user3069232
一致性是好的和可取的,獲得這種一致性需要你實現多個API。 MPRemoteCommandCenter只是整體的一部分:它專門用於接收UIGestureRecognizer無法捕獲的命令或其他「正常」的應用內交互。你會想要實現接受命令的兩種方式。 –