AVPlayerViewController周围的怪异边界

时间:2018-06-19 11:41:37

标签: ios swift xcode avplayer

我正在为我的应用程序设计登录屏幕,我想在该屏幕上显示动画徽标。我已经创建了一个小型视频文件(大约1 Mb),并使用以下代码创建了AVPlayerViewController实例:

let videoURL = URL(fileURLWithPath: Bundle.main.path(forResource: "logo_cc", ofType: "mp4")!)
let player = AVPlayerViewController()
player.player = AVPlayer(url: videoURL)
player.videoGravity = AVLayerVideoGravity.resizeAspectFill.rawValue
player.view.frame = playerView.bounds
playerView.addSubview(player.view)
player.player!.play()

其中playerView是在UIView中创建的实际StoryBoard,它必须保存视频。

因此,一切正常,视频正在播放等,但是我唯一的问题是视频周围的那些细小边框(只能在实际设备上看到,但是当我使用屏幕截图或屏幕镜像时在Mac上的QuickTime,这些边框消失了)。

这是演示:https://imgur.com/a/zarVwac 如您所见,这些边框只能在实际设备上看到(左侧的屏幕快照也从该设备上拍摄,但是边框不在那里)。

关于如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:0)

在多个设备(实际的物理设备,而不是模拟器)上测试此代码之后,此错误似乎仅在Plus设备上发生(我在iOS 11的i8,iOS 11的i8 +,iOS 11的iX +和iOS 11的iX +以及i6 + iOS 10)。

要解决此问题,我首先从AVPlayerViewController切换到AVPlayerLayer,并添加了这两行代码:

playerLayer.shouldRasterize = true
playerLayer.rasterizationScale = UIScreen.main.scale

第一行似乎删除了这些怪异的行,但是使视频的质量糟透了。 第二行代码确定了质量。

希望这对某人有帮助!

相关问题