Receive "Siri remote" event in background on tvOS
我为 tvOS 制作了一个收音机播放器,但我不想让音频流在后台继续播放。所有这一切都很好,而且很容易。
但是,如果在后台按下"播放/暂停"按钮,我想停止流/音频。但我无法弄清楚如何做到这一点。
我只希望它停止,而不是暂停。这就是 Apple Radio 的工作原理。
我正在使用 Press 事件和 Actions 处理我的所有输入,从界面构建器设置。
到目前为止,我发现它在 iOS 上是如何工作的,并且有人建议我使用它,但是从来没有调用 remoteControlReceivedWithEvent (甚至在前台也没有)。
非常感谢您对此提供的任何帮助,特别是如果您有幸自己实现了它;)
1 2 3
| UIApplication.sharedApplication().beginReceivingRemoteControlEvents()
override func remoteControlReceivedWithEvent(event: UIEvent?) {} |
- TvOS 是否支持开发者应用的后台远程控制事件传递?我只是快速搜索了一下,找不到任何说明它可能的文档(Apple Radio 不算在内,因为它是一款不受任何限制的 Apple 产品)。我不是说你不能,我只是没有亲眼看到任何说你可以的东西。
-
@earthtrip - 不,我还没有找到任何文件说明这也应该是可能的。只是认为由于后台模式可用,因此也可以对其进行控制。我已经在 Apple 论坛上发布了这个问题,希望他们的一位工程师能解决这个问题。当我有答案时,我会在这里发布答案。然而,他们应该将它添加到 SDK,用户不能停止从 Apple 自己的应用程序以外的其他应用程序在后台播放的音乐并不是很好。但是,目前的 Apple TV 更像是一个公开测试版。也很贵:)
-
在所有方面都同意;)
-
@ChrissyMcBeal 你得到任何答案了吗?是否可以在后台接收远程事件?我能够在前台使用手势识别器让它工作。
-
@Tata??rasanuVictor 不,我没有在 tvOS 论坛上收到答案,所以我想我不会。我确实提交了我的应用程序,它通过了审核流程,现在在 App Store 中。所以我的猜测是这还不可能,因为他们说清楚了。希望将来可能/更容易:)
-
嗨,@ChrissyMcBeal,有什么更新吗?任何更新?我正在做一个类似的项目,所以我们可以分享一些知识。
这我能够使用 MediaPlayer's MPRemoteCommandCenter
开始工作
1 2 3 4 5 6 7 8 9 10 11
| func setupRemoteCommandCenter() {
let remoteCommandCenter = MPRemoteCommandCenter.sharedCommandCenter()
let pauseCommand = remoteCommandCenter.pauseCommand
pauseCommand.enabled = true
pauseCommand.addTarget(self, action:"pauseEvent")
}
func pauseEvent() {
pause()
} |
- 在他们的一次电视技术讲座中与 Apple 工程师交谈,可以确认这是正确的。
-
此外,根据 beginReceivingRemoteControlEvents 上的文档。"在 iOS 7.1 及更高版本中,使用共享的 MPRemoteCommandCenter 对象注册远程控制事件。使用共享命令中心对象时不需要调用此方法。"尽管明显提到了 iOS,但我希望这也适用于 tvOS 开发
-
这很棒,因为我正在从事其他项目,所以我只是简单地测试了它。很酷,谢谢分享。