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;