我正在为我的应用程序设计登录屏幕,我希望在其中有动画 Logo 。我创建了一个小视频文件(大约 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
是在 StoryBoard
中创建的实际 UIView
,它必须保存视频。
因此,一切正常,视频正在播放等,但我遇到的唯一问题是视频周围的那些微小边框(只能在实际设备上看到,但当我使用屏幕截图或屏幕镜像时)我的 Mac 上的 QuickTime,那些边框消失了)。
演示如下:/image/DTNLg.jpg 正如您所看到的,这些边框只能在实际设备上看到(左侧的屏幕截图也取自该设备,但边框不存在)。
关于如何解决这个问题有什么想法吗?
最佳答案
在多个设备(实际的物理设备,而不是模拟器)上测试此代码后,此错误似乎仅在 Plus 设备上发生(我在 iOS 11 上的 i8、iOS 11 上的 i8+、iOS 11 上的 iX 和 iOS 11 上的 i6+ 上进行了测试) iOS 10)。
为了解决这个问题,我首先从 AVPlayerViewController
切换到 AVPlayerLayer
并添加了这两行代码:
playerLayer.shouldRasterize = true
playerLayer.rasterizationScale = UIScreen.main.scale
第一行似乎消除了那些奇怪的线条,但使视频的质量变得很糟糕。 第二行代码修复了质量。
希望这对某人有帮助!
关于ios - AVPlayerViewController 周围的奇怪边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50927561/