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

标签 ios swift avplayer swift4 avplayerviewcontroller

我使用 Av 播放器 View Controller 创建了启动视频。它适用于除 I Phone 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()

最佳答案

我通过为播放器 View Controller 赋予视频引力来解决此问题:

playerViewController.videoGravity = .resizeAspectFill

这将通过使用视频重力作为 avplayer View Controller 的纵横比填充来解决这个问题。这是视频重力的文档:

The video gravity determines how the video content is scaled or stretched within the player layer’s bounds.

关于ios - 仅适用于 iPhone x 的 AVPlayer 全屏问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49105521/

相关文章:

ios - 进行实时 HTTP 流式传输时显示 AVPlayerItem 状态未知

iphone - 将数据从传感器传输到 iPhone

ios - 如何在播放实况照片时禁用触觉反馈

swift - 如何从 Swift 中的镜像子项中提取可选类型值?

ios - MKMapView - 在后台线程中添加注释

ios - 播放结束后将音量控制返回到 iOS 设备铃声

ios - 有什么方法可以禁用钱包通行证和 Android 支付中的共享通行证按钮吗?

ios - CCMenuItemAtlasFont 用法

Swift pthread 读/写锁需要一段时间才能释放锁

ios - 如何在锁定屏幕上添加快退按钮?