13

我的 iPad 应用程序使用此处讨论的技术向 Apple TV 呈现第二个 UI - 即检测并绘制到代表 Apple TV 的 UIScreen:

http://developer.apple.com/library/IOs/#documentation/AudioVideo/Conceptual/AirPlayGuide/EnrichYourAppforAirPlay/EnrichYourAppforAirPlay.html

该文档还讨论了接收远程控制事件:

使用 AirPlay 时,您的媒体可能正在您的主机设备上的另一个房间中播放。AirPlay 输出设备可能有自己的控件或响应 Apple 遥控器。为获得最佳用户体验,您的应用应侦听并响应远程事件,例如播放、暂停和快进请求。启用远程事件还允许您的应用响应物理插入主机设备的耳机或耳塞上的控件。

我已经实现了他们描述的方法,开始在我的应用程序和一个简单的测试项目中接收远程控制事件,但我无法检测到任何事件。当我使用直接插入 iPad 的耳机时,我没有收到事件,当我向 Apple TV 发送视图时,我也没有收到事件。

我得出的结论是,事实上,您可以拦截远程控制事件的唯一方法是将媒体流式传输到 Apple TV,而不是简单地呈现应用程序 UI 或镜像。

使用 MixerHost 示例应用程序( http://developer.apple.com/library/ios/#samplecode/MixerHost/Introduction/Intro.html )通过以下步骤进行测试似乎支持了这一假设:

  1. 在 iPad 上启动应用程序并打开镜像到 Apple TV。
  2. 按遥控器上的“播放”按钮 - 没有任何反应。
  3. 按应用程序 UI 上的“播放”按钮,音乐开始通过 Apple TV 播放。
  4. 按遥控器上的“播放”按钮停止音乐,但音乐不会停止。
  5. 更改 iPad 上的 Airplay 路由,使其不再镜像,而只是将音频发送到 Apple TV。如果您在“remoteControlReceivedWithEvent”上设置断点,然后按下遥控器的播放/暂停按钮,您可能会捕捉到该事件。它是不一致的 - 在收到一两个事件后,它停止工作。

有没有其他人在 Airplay 和远程控制事件上运气更好?建议?

4

1 回答 1

3

我也一直在通过 AirPlay Mirroring 试验第二个屏幕 UI,我可以确认 Apple 远程事件在镜像期间没有从 Apple TV 转发到 iOS 设备。

在我自己的测试应用程序中,我可以一致地接收耳机远程控制事件和来自“正在播放控件”的远程控制事件——双击主页按钮后底部工具栏中可用的媒体控件。

但 Apple TV 遥控器从未显示任何事件。

只是要添加到 Apple / AirPlay 愿望清单中的另一个项目......

于 2011-12-12T23:18:45.590 回答