我正在编写一个使用MPMoviePlayerController播放网址的应用。该应用程序在后台运行,使用airplay也可以使用ATV,macmini使用airserver和XBMC。该URL是本地网络上的电影文件。我understand的方式是电话没有做任何繁重的工作,只是将网址传递给苹果电视,只要网址指向AppleTV支持的媒体,它就会播放。
我遇到的问题是苹果电视必须积极地ping通iphone并保持wifi有效,因为电池寿命非常严重。播放一部平均大小的电影会使iPhone 3GS的电池续航时间缩短约2/3,而IPhone 4S则耗电1/2。
如果我使用air server在Mac mini上播放,那么手机上的电池续航时间就会降低,就像手机背景不播放一样。我注意到,如果我停止在iPhone上的wifi,那么电影将继续在Mac mini上播放,但在ATV上停止约30秒。我猜测ATV不断推出一个事件,说它正在播放,如果它没有收到OK,那么它就会停止播放。
我做错了吗?让其他人使用手机中的airplay经历相同的电池耗尽吗?我试过别人的应用程序,它也做了同样的事情。
答案 0 :(得分:1)
流量的数据包跟踪将为您提供明确的答案。但是,假设您链接的文档是正确的,您的答案可能就在这里:
AirPlay服务器是HTTP服务器(RFC 2616)。与此服务器建立了两个连接,第二个连接用作反向HTTP连接。这允许客户端从服务器接收异步事件,例如回放状态更改。
反向连接会使WiFi无线电保持活动状态。