AVComposition 在 Airplay 上中断

Posted

技术标签:

【中文标题】AVComposition 在 Airplay 上中断【英文标题】:AVComposition breaks on Airplay 【发布时间】:2012-07-24 22:54:03 【问题描述】:

我有一个视频作品,我想通过 Airplay 播放(不进行镜像)。该应用程序在使用普通 Airplay 镜像时可以正常工作,但我希望获得使用 Airplay 视频所获得的速度、可靠性和分辨率提升。

问题是当我设置

player.usesAirPlayVideoWhileAirPlayScreenIsActive = YES;

...玩家进入空白状态。

注意事项:

由于我没有为每个显示器创建单独的窗口,它们都试图使用相同的 AVPlayer。 我的 AVVideoComposition 包含不同的文件,并在它们之间添加了不透明度渐变。 这个未回答的问题表明问题更可能是由于我正在播放 AVComposition 而不是使用共享播放器这一事实:AVComposition doesn't play via Airplay Video

两个问题:

    iPad 上的播放器必须卸载吗? 可以通过 AirPlay 播放 AVVideoComposition 吗?

【问题讨论】:

你有什么运气吗?我也有类似的问题 任何信息?在您提出问题多年后,我自己也遇到了这个问题,但问题仍然存在。 不幸的是,我们当时决定放弃该功能并继续前进,所以恐怕我无法对此有所了解。 【参考方案1】:

我无法制作 cmets,因此我不得不将其发布为答案,尽管它可能无法完全回答问题。

我遇到了类似的问题,最后我发现当AVPlayer 播放AVComposition 时,它根本不会在外部显示器上显示任何内容。这就是为什么我必须自己通过收听UIScreen 连接通知来完成。

我不得不说一切都非常完美。我首先检查是否有多个屏幕,如果有,我只需在该屏幕上移动AVPlayer,同时在设备屏幕上显示一条简单消息,说明正在播放内容......加上 AirPlay 设备的名称。这样我就可以在外接显示器上放任何我想要的东西,而且不是很复杂。当我收到UIScreenDidConnectNotification 时也是如此。

这很好,直到我注意到外接显示器上的构图非常不稳定。即使它只包含一个视频,没有任何复杂的编辑或叠加。如果我将相同的视频保存到相机胶卷或使用MPMoviePlayerController,则可以完美播放。

我尝试了很多方法,例如降低分辨率、降低renderScale 等等,但都没有成功。

让我更困扰的是苹果实际上是如何在 iMovie 中做到这一点的——如果你启用了 AirPlay 并且你在点击播放按钮后播放了一个项目(注意它仍然没有渲染,所以它必须使用合成才能显示它)它会打开一个播放器,在外接显示器上播放内容非常流畅。但是,如果您从播放器激活 AirPlay,它会关闭并开始渲染项目。之后,它使用 MPMoviePlayerController 播放它。

我仍在努力寻找解决方案,如果我成功了,我会回复。

所以对于这两个问题:

    我不明白你为什么要摆脱。 是的,它可以播放,但使用不同的技术和明显的问题。

【讨论】:

【参考方案2】:

在应用程序 .plist 中创建一个名为:

required background modes

添加一个新的数组元素,名为:

App plays audio or streams audio/video using AirPlay

不确定您是否已经尝试过,但您没有在帖子中提及。

干杯!

【讨论】:

以上是关于AVComposition 在 Airplay 上中断的主要内容,如果未能解决你的问题,请参考以下文章

在 AVComposition 中编辑视频时序

AVPlayerItemVideoOutput 文件不能在 AVComposition IOS7 中使用

AVComposition 的 AVPlayer 播放速率

使用 CMTimeMapping 寻求 AVComposition 会导致 AVPlayerLayer 冻结

在 iOS 上使用 Airplay 时显示推送通知?

在 Safari 上使用 Selenium 时无法选择要 Airplay 的设备