在 AVPlayerViewController 中将 AVPlayer 设为全屏视图,Swift

Make AVPlayer to full screen view in AVPlayerViewController, Swift

我是 swift 的新手,在 AVPlayerViewController.player 进入全屏时遇到问题 ViewController: AVPlayerViewController

这是我在 viewDidAppear 中用来播放视频的代码

    let path = NSBundle.mainBundle().pathForResource("video", ofType: "mp4")!
    let url = NSURL(fileURLWithPath: path)

    let player = AVPlayer(URL: url)
    self.player = player
    self.showsPlaybackControls = false
    self.player!.play()

我正在隐藏 playBackControlls,需要全屏观看视频...

为了将 AVPlayer 添加到视图,我从中创建了一个 CALayer,如下所示:

let playerLayer = AVPlayerLayer(player: player)

然后你需要把这个图层添加到视图中,比如你把那个代码写在一个ViewController中,那么你可以这样做:

self.view.layer.addSublayer(playerLayer)

接下来,确保这一层和父层一样大ViewController:

playerLayer.frame = self.view.layer.bounds

现在,您可以选择任何 these 选项来调整视频大小。在这里,我使用 .resize 假设视频和屏幕的纵横比相同

playerLayer.videoGravity = AVLayerVideoGravity.resize

我建议在不添加额外层的情况下采用以下解决方案:

在你的 ViewController: AVPlayerViewControllerviewDidLoad() 中设置

videoGravity = .resizeAspectFill

根据文档:

The video gravity determines how the video content is scaled or stretched within the bounds of the player view controller’s view. The player view controller supports the following video gravity values:

  • resizeAspect
  • resizeAspectFill
  • resize

The default value is resizeAspect.