我的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):
在iPad上启动应用程序,并启用了对Apple TV的镜像.
按遥控器上的"播放"按钮 - 没有任何反应.
按应用UI上的"播放"按钮,音乐开始通过Apple TV播放.
按遥控器上的"播放"按钮停止音乐,但音乐不会停止.
更改iPad上的Airplay路由,使其不再镜像,只是将音频发送到Apple TV.如果在"remoteControlReceivedWithEvent"上设置断点,并按遥控器上的"播放/暂停"按钮,则可能会捕获该事件.它是不一致的 - 在收到一个或两个事件后,它停止工作.
还有其他人在Airplay和遥控事件方面有更好的运气吗?建议?