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

时间:2016-09-29 07:01:19

标签: ios iphone swift avplayer avplayerviewcontroller

我是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,并要求将视频视图设为全屏...

2 个答案:

答案 0 :(得分:3)

为了将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

答案 1 :(得分:1)

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

viewDidLoad()中的 ViewController:AVPlayerViewController

刚刚设置

videoGravity = .resizeAspectFill

根据文档:

视频重力确定视频内容的缩放比例或 在播放器视图控制器的视图范围内延伸。的 播放器视图控制器支持以下视频重力值:

  • resizeAspect
  • resizeAspectFill
  • 调整大小

默认值为 resizeAspect