6

我正在编写一个使用 MPMoviePlayerController 播放 url 的应用程序。该应用程序在后台运行,使用 airplay 也适用于 ATV、使用 airserver 的 macmini 和 XBMC。该 url 指向本地网络上的电影文件。我理解的方式是手机不会做任何繁重的工作,而只是将 url 传递给苹果电视,只要 url 指向 AppleTV 支持的媒体,它就会播放。

我遇到的问题是苹果电视必须积极地 ping iphone 并保持 wifi 处于活动状态,因为电池寿命受到了很大的打击。播放一部普通大小的电影会使 iPhone 3GS 的电池寿命减少约 2/3,而在 iPhone 4S 上则减少 1/2。

如果我使用空中服务器在 mac mini 上玩游戏,那么手机的电池寿命会以与手机处于后台并且不播放任何内容相同的速度减少。我注意到如果我在 iphone 上停止 wifi,那么电影将继续在 mac mini 上播放,但在 ATV 上大约 30 秒内停止。我猜 ATV 一直在推出一个事件,说它正在播放,如果它没有收到 OK 作为回报,那么它就会停止播放。

有什么我做错了吗?其他人是否在手机上使用 Airplay 时遇到过同样的电池消耗问题?我试过别人的应用程序,它也做了同样的事情。

4

1 回答 1

1

流量的数据包跟踪将为您提供明确的答案。但是,假设您链接到的文档是正确的,您的答案可能在这里:

AirPlay 服务器是 HTTP 服务器 (RFC 2616)。与此服务器建立两个连接,第二个用作反向 HTTP 连接。这允许客户端从服务器接收异步事件,例如播放状态更改。

反向连接将使 WiFi 无线电保持活动状态。

于 2012-06-20T18:13:37.837 回答