Make AVPlayer to full screen view in AVPlayerViewController, Swift

Sulman Malik picture Sulman Malik · Sep 29, 2016 · Viewed 10.5k times · Source

I am new to swift and getting problem in making AVPlayerViewController.player go to full screen in ViewController: AVPlayerViewController

here is code I am using in viewDidAppear to play the video

    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...

Answer

Hamoonist picture Hamoonist · Jan 28, 2018

For adding AVPlayer to a view, I make a CALayer from it like this:

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:

self.view.layer.addSublayer(playerLayer)

Next, make sure that this layer is as big as the parent 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

playerLayer.videoGravity = AVLayerVideoGravity.resize