仅适用于iPhone x的AVPlayer全屏问题

Shi*_*k.p 1 ios avplayer swift avplayerviewcontroller swift4

我使用Av播放器视图控制器创建了一个启动视频.它适用于所有设备,除了我的手机X.我尝试改变视频重力框架和一切,但它不会工作.关于这个的任何想法?这是示例代码:

guard let videoPath = Bundle.main.path(forResource: "Redtaxi-splash", ofType:"mov") else {
    return
}

let videoURL = URL(fileURLWithPath: videoPath)
let player = AVPlayer(url: videoURL)
playerViewController = AVPlayerViewController()
playerViewController?.player = player
playerViewController?.showsPlaybackControls = false
playerViewController?.view.frame = view.frame
playerViewController?.view.backgroundColor = .white
playerViewController?.view.contentMode = .scaleAspectFill


NotificationCenter.default.addObserver(self, selector: #selector(playerDidFinishPlaying(note:)),
                                       name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: player.currentItem)

view.addSubview((playerViewController?.view)!)
playerViewController?.player?.play()
Run Code Online (Sandbox Code Playgroud)

Shi*_*k.p 8

我通过为播放器视图控制器提供视频重力来修复此问题:

playerViewController.videoGravity = .resizeAspectFill
Run Code Online (Sandbox Code Playgroud)

这将通过使用视频重力作为avplayer视图控制器的方面填充来解决问题.这是视频引力的文档:

视频重力决定了视频内容在播放器图层范围内的缩放或拉伸方式.