使用AVPlayer播放的video在iPhone 6S Plus的顶部和两侧都有灰线

这似乎是仅iPhone 6S Plus上的一个设备特定的错误。

脚步:

  1. 下载AVPlayer演示示例代码
  2. 调整AVPlayerDemoPlaybackView.xib以便MPlayback View具有边缘
  3. 使内容视图颜色为白色

1px灰线将出现在顶部和两侧。

任何人都知道如何解决这个问题?

我试图把不透明的看法掩盖顶部,但线仍然会出现在不透明的观点之上!

AVPlayerLayershouldRasterize属性设置为true会使边框消失。

我的build议是,因为你的用例是一个animation循环,以AVPlayer和使用UIImageView。

UIImageanimatedImage(with:duration:)在哪里你可以input图像数组和animation他们如何你喜欢。

我想这会解决你的问题。 根据我的经验,AVPlayer对于iOS 10有点不习惯。我认为,因为你只在6s +和7s +上看到这个问题,所以certificate它有一些问题。

如果您完全致力于搞清AVPlayer,请首先向苹果提交错误报告。 然后,也许尝试添加一个UIImageView在AVPlayer的后面,将图像设置为video中的空白帧。 这是一个hacky解决scheme,但它可能工作。 另外,看看这个堆栈溢出post。 这可能会让您对AVPlayer所遇到的问题有所了解。

祝你好运。

我试过Nate4436271的答案,它对我有效,我的意思是,有同样的问题,并摆脱了灰色的线条,但将shouldRasterize属性设置为true,使我的video丢失图像质量。 所以,我把我的playerLayer的videoGravity设置为AVLayerVideoGravityResizeAspectFill和我摆脱了行,同时保持图像质量:)

这是我做的:

 playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill 

AspectFill符合我的需求,并解决了这个问题。 您可能希望评估其他选项是否更适合您的需求,如AspectFit或Resize。

希望这可以帮助 :)