通过AirPlay使用AVPlayer音频时,MPNowPlayingInfoCenter的nowPlayingInfo被忽略。

13
我已经使用AVPlayer实现了播放远程mp3 URL的音频播放。 我想使用MPNowPlayingInfoCenter的nowPlayingInfo方法显示有关当前播放音频的信息。 当我锁定屏幕时,确实会看到我设置的图片和标题,因此我知道该方法以某种方式注册了该信息,但是当我切换到AppleTV的AirPlay时,显示看起来像通用视频输出,底部有进度条,但已经正确显示已过时间和持续时间。 如果我设置相同的nowPlayingInfo,但然后使用AudioQueue开始播放一些音频,则会在屏幕上半部分正确显示图像(它看起来就像在iPod / Music应用程序中播放播客)。 这只是AVPlayer支持使用AirPlay音频的限制,还是有一些方法可以使其正确显示图像和信息?
2个回答

15

好的-我在苹果开发者论坛上找到了一个提示。

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

显然,在iOS 5+上,AVPlayer假定通过AirPlay播放视频,因此除非您明确禁用视频AirPlay,否则不允许后台操作。

一旦您禁用了此功能(即self.player.allowsAirPlayVideo = NO;),那么您的音频仍将通过AirPlay播放,但现在它将正确显示音频/ iPod界面。


如果我添加 player.allowsExternalPlayback = false,则通过AirPlay无法播放视频或声音:( - anitteb

7
如果你使用的是iOS7系统,你需要禁用外部播放: self.player.allowsExternalPlayback = NO;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接