是否有用于检索Apple TV版本的API?

时间:2013-10-08 00:10:33

标签: ios airplay apple-tv

我刚刚为iOS启动了新的Netflix应用程序,在尝试将视频AirPlay播放到Apple TV时,我收到了这样的消息:

You'll need to update your Apple TV before you can watch this show using AirPlay

所以我想知道他们是如何做到这一点的。是否有公共API可让应用程序检索为AirPlay选择的Apple TV版本?或者Netflix是否使用其他方法来检测这个?

1 个答案:

答案 0 :(得分:3)

能够拉出这样的东西实际上并不困难。我们需要做两件事:1)监听音频路线何时更改以了解我们何时连接到AirPlay设备,以及2)在网络中搜索AirPlay设备以获取信息。

当音频路线发生变化时我们会收到通知,我们可以获得有关新路线的信息。对我们来说,最重要的一点是AirPlay设备的输出端口名称。一旦我们有了这个,我们就可以遍历我们所知道的所有AirPlay设备,找到与输出端口名称相匹配的设备。一旦我们拥有该设备,我们就可以从其TXT记录中获取信息,其中包含有关其运行的软件版本的信息。

我已将示例项目推送到Github,详细说明我是如何解决这个问题的。这是一个非常简单的项目,只需在路径更改时进行处理。如果您想使用此代码,那么您还需要在某些其他位置添加检查,例如当您提供MPMoviePlayerViewController时。

编辑:请注意,这非常hacky,因为我们依赖端口的名称与AirPlay设备的名称相同。如果Apple改变其中任何一个,那就会破坏。或者,您可以将设备的TXT记录的“deviceid”字段与端口的UID进行比较,就我所知,它是附加了字符串“-airplay”的deviceid。再说一遍,如果Apple改变了它,它会破裂,但至少它是另一种可能的检查方式。