ios - AVPlayerViewController 周围的奇怪边框

标签 ios swift xcode avplayer

我正在为我的应用程序设计登录屏幕,我希望在其中有动画 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/

相关文章:

iphone - 如何让处理程序重复 UIView animateWithDuration?

iOS 应用程序在使用 CMPedometer 功能时崩溃

ios - 如何使用 Carthage 构建针对 ARM 和 x86 目标的框架?

ios - Swift 2/Xcode 7.0 - 条件绑定(bind)的初始值设定项必须具有可选类型,而不是 'nsmanagedobjectcontext'

swift - 如何对 NSFetchedResultsController 的不同部分使用不同的 NSSortDescriptor ? ( swift )

xcode - 使用 Xcode 7 UITest 测试元素是否可见

ios - UITableViewCell 图像在选择之前不会显示

ios - 如何将 NSDictionaryResults 转换为 NSManagedObject,

objective-c - 找不到我的静态库的 header

objective-c - 如何将字典数据添加到数组中?