0

I faced a very strange behaviour of AVPlayerViewController. I use this code to add play video inside view:

class ViewShowTest:UIViewController
{
    let view_for_media = UIView()

    override func viewDidLoad()
    {
        super.viewDidLoad()
        self.view.backgroundColor = .red

        self.view.addSubview(view_for_media)
        view_for_media.snp.makeConstraints(
            { make in

                make.top.equalToSuperview().offset(100)
                make.left.right.equalToSuperview()
                make.height.equalTo(300)
        })

        setVideo()
    }

    func setVideo()
    {
        let url = URL(string: "https://www.radiantmediaplayer.com/media/bbb-360p.mp4")!
        let player = AVPlayer(url: url)
        let player_vc = AVPlayerViewController(nibName: nil, bundle: nil)
        player_vc.player = player

        self.view_for_media.addSubview(player_vc.view)
        self.addChild(player_vc)
        player_vc.didMove(toParent: self)
        player_vc.view.frame = view_for_media.bounds
    }
}

Video is playing as expected inside view. But after going to fullScreen and returning back (no matter with swipe or close button) ViewShowTest ignores all touches. I still can drag default ios Menus from top and bottom but ViewShowTest view and player_vc.view does not reacts any touches. This bug appears only on ios 12.4 and below. How can i solve this problem?

Bios90
  • 801
  • 2
  • 14
  • 26
  • Have a look at it, this might help you. https://stackoverflow.com/questions/36878609/avplayer-uitapgesturerecognizer-not-working – Abdul Karim Khan Mar 16 '20 at 20:11
  • Thanks for comment, but i think my problem is a bit differ and it is related with using AVPlayerViewController as a child controller – Bios90 Mar 16 '20 at 20:21

0 Answers0