3

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?

Saqib Omer
  • 5,387
  • 7
  • 50
  • 71

0 Answers0