MPNowPlayingInfoCenter nowPlayingInfo通过AirPlay忽略AVPlayer音频

我已经使用AVPlayer实现了音频播放,播放了一个远程mp3url。

我想使用MPNowPlayingInfoCenter nowPlayingInfo方法显示有关当前播放音频的信息。

当我锁定屏幕时,我确实看到了我设置的图像和标题,所以我知道这种方法是以某种方式注册信息,但是当我将AirPlay切换到AppleTV时,显示器看起来像一个通用的video输出,底部的进度条,但正确显示已用时间和持续时间。

如果我设置相同的nowPlayingInfo ,然后使用AudioQueue启动一些音频,那么它会在屏幕的一半上正确显示图像(它看起来就像播放iPod /音乐应用程序的播客一样)。

这仅仅是使用AVPlayer对AirPlay支持音频的限制,还是有一些方法可以让它正确显示图像和信息?

好的 – 我通过apple dev论坛挖掘并发现了一个提示。

如果您正在使用AVPlayer仅用于音频,并希望它在播放时在后台工作,则需要禁用allowsAirPlayVideo设置。

显然,iOS 5+上的AVPlayer假设它正在通过AirPlay播放video,因此不允许进行后台处理,除非您明确禁用videoAirPlay。

一旦你禁用它(即self.player.allowsAirPlayVideo = NO; ),你的音频仍将通过AirPlay播放,但现在它将正确显示音频/ ipod界面。

如果您使用的是iOS7,则必须禁用外部播放:

self.player.allowsExternalPlayback = NO;