Swift. How do I remove the toolbar in an AVPlayerViewController

1.2k Views Asked by At

I'm presenting an AVPlayerViewController with an AVPlayer and are displaying a pre-roll ad in it, but I want to remove the top and button bar, or make the user unable to dismis the ViewController before the ad is done:

Screnshot from iphone

How do I do that?

here's my code for my AVPlayerViewController implementation:

let preRollAdPlayer = AVPlayerViewController()

let player = AVPlayer()
preRollAdPlayer.player = player
if #available(iOS 9.0, *) {
    preRollAdPlayer.delegate = self
}

preRollAdPlayer.showsPlaybackControls = false

self.view?.window?.rootViewController?.presentViewController(preRollAdPlayer, animated: true, completion: {
    self.preRollAdPlayer.playPrerollAdWithCompletionHandler({ (error) -> Void in

        if (error != nil) {
            NSLog("Error Message: %@", error)
        } else {
            print("preRoll loaded")
        }

        self.preRollAdPlayer.dismissViewControllerAnimated(true, completion: {
            if (error != nil) {
                NSLog("Error Message: %@", error)
            }
        })
    })

})
1

There are 1 best solutions below

2
On

According to Apple, you should use showsPlaybackControls property:

A Boolean value that indicates whether the player view controller shows playback controls.

Set it to false:

Swift:

yourAvPlayer.showsPlaybackControls = false

Objective C:

[yourAvPlayer setShowsPlaybackControls:FALSE];