Scenario: I am mirroring iPad app on Apple tv. Tapping on button starts video. Video plays via Airplay on tv.
let playerViewController = AVPlayerViewController()
let player = AVPlayer(url: videoURL as URL)
playerViewController.player = player
playerViewController.videoGravity = AVLayerVideoGravityResizeAspect
self.present(playerViewController, animated: true) {
self.playerViewController.player!.play()
}
I have added an observer to remove AVPlayerViewController()
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.videoEnded), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: self.videoplayer)
Once video ends, this method triggers.
func videoEnded() {
print("Video Ended")
logoButton.isHidden = false
longPressGesture.isEnabled = false
scanImageView.isHidden = true
scanImageView.image = UIImage(named: "scan")
logoButton.isEnabled = true
self.view.backgroundColor = UIColor.white
self.playerViewController.dismiss(animated: true, completion: nil)
}
Issue: When video ends, apple tv is showing black screen, not the app. How can I restart mirroring once video ends?