简体   繁体   English

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

[英]Make AVPlayer to full screen view in AVPlayerViewController, Swift

I am new to swift and getting problem in making AVPlayerViewController.player go to full screen in ViewController: AVPlayerViewController我是 swift 的新手并且在使 AVPlayerViewController.player 在 ViewController 中进入全屏时遇到问题:AVPlayerViewController

here is code I am using in viewDidAppear to play the video这是我在 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()

I am making playBackControlls hidden, and required to make video view to full screen...我正在隐藏 playBackControlls,并且需要将视频视图设为全屏...

For adding AVPlayer to a view, I make a CALayer from it like this:为了将 AVPlayer 添加到视图中,我从它创建了一个 CALayer,如下所示:

let playerLayer = AVPlayerLayer(player: player)

Then you need to add this layer to a view, for example, if you wrote that code in a ViewController, then you can do this:然后你需要将此层添加到视图中,例如,如果你在 ViewController 中编写了该代码,那么你可以这样做:

self.view.layer.addSublayer(playerLayer)

Next, make sure that this layer is as big as the parent ViewController:接下来,确保该层与父 ViewController 一样大:

playerLayer.frame = self.view.layer.bounds

And now, you can choose any of these options to how to resize your video.现在,您可以选择这些选项中的任何一个来调整视频大小。 Here, I used .resize assuming aspect ratio of video and the screen are the same在这里,我使用.resize假设视频和屏幕的纵横比相同

playerLayer.videoGravity = AVLayerVideoGravity.resize

I'd recommend following solution without adding extra layer:我建议在不添加额外层的情况下使用以下解决方案:

in your ViewController: AVPlayerViewController in viewDidLoad() just set在你的ViewController: AVPlayerViewControllerviewDidLoad()刚刚设置

videoGravity = .resizeAspectFill

According to documentation:根据文档:

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调整AspectFill
  • resize调整大小

The default value is resizeAspect .默认值为resizeAspect

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM