From cdca235f39242155b45727612492034180392222 Mon Sep 17 00:00:00 2001 From: Benoit Martins Date: Mon, 26 Jun 2023 17:10:55 +0200 Subject: [PATCH] Fix fullscreen video player --- Classes/Swift/Util/Viewers/MediaViewer.swift | 30 ++++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/Classes/Swift/Util/Viewers/MediaViewer.swift b/Classes/Swift/Util/Viewers/MediaViewer.swift index f42b5879a..df8f1941b 100644 --- a/Classes/Swift/Util/Viewers/MediaViewer.swift +++ b/Classes/Swift/Util/Viewers/MediaViewer.swift @@ -79,19 +79,24 @@ class MediaViewer: BackNextNavigationView, UICompositeViewDelegate, UIScrollVie titleLabel.toRightOf(backButton).toLeftOf(shareButton).done() } + override func viewDidAppear(_ animated: Bool) { + self.navigationController?.isNavigationBarHidden = false + self.tabBarController?.tabBar.isHidden = false + PhoneMainView.instance().hideStatusBar(false) + } + override func viewWillDisappear(_ animated: Bool) { stopPlayer() } func stopPlayer() { if let play = player { - print("viewWillDisappearviewWillDisappear stopped") play.pause() play.replaceCurrentItem(with: nil) try! AVAudioSession.sharedInstance().setActive(false) - print("viewWillDisappearviewWillDisappear player deallocated") + print("Player deallocated") } else { - print("viewWillDisappearviewWillDisappear player was already deallocated") + print("Player was already deallocated") } } @@ -183,6 +188,25 @@ class MediaViewer: BackNextNavigationView, UICompositeViewDelegate, UIScrollVie if player != nil { player!.play() } + + let pictureTap = UITapGestureRecognizer(target: self, action: #selector(videoTapped)) + self.view.addGestureRecognizer(pictureTap) + self.view.isUserInteractionEnabled = true + } + } + } + } + + @objc func videoTapped(){ + if let urlEncoded = imagePathViewer.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed){ + if !urlEncoded.isEmpty { + if let urlVideo = URL(string: "file://" + urlEncoded){ + let player = AVPlayer(url: urlVideo) + let playerViewController = AVPlayerViewController() + playerViewController.player = player + self.present(playerViewController, animated: true) { + playerViewController.player!.play() + } } } }