Browse Source

Fix stop player

Signed-off-by: marinofaggiana <ios@nextcloud.com>
marinofaggiana 2 years ago
parent
commit
9d34dbfdb2

+ 3 - 2
iOSClient/Viewer/NCViewerMedia/NCPlayer/NCPlayer.swift

@@ -48,6 +48,7 @@ class NCPlayer: NSObject {
     public var durationTime: CMTime = .zero
     public var metadata: tableMetadata
     public var videoLayer: AVPlayerLayer?
+    public var isOpenPlayer: Bool
 
     public var isSubtitleShowed: Bool = false{
         didSet {
@@ -63,6 +64,7 @@ class NCPlayer: NSObject {
         self.url = url
         self.autoPlay = autoPlay
         self.isProxy = isProxy
+        self.isOpenPlayer = false
         self.imageVideoContainer = imageVideoContainer
         self.playerToolBar = playerToolBar
         self.metadata = metadata
@@ -78,8 +80,6 @@ class NCPlayer: NSObject {
         } catch {
             print(error)
         }
-
-        openAVPlayer()
     }
 
     deinit {
@@ -180,6 +180,7 @@ class NCPlayer: NSObject {
                     if self.autoPlay {
                         self.player?.play()
                     }
+                    self.isOpenPlayer = true
                     break
                 case .failed:
                     self.playerToolBar?.hide()

+ 9 - 6
iOSClient/Viewer/NCViewerMedia/NCViewerMedia.swift

@@ -94,6 +94,7 @@ class NCViewerMedia: UIViewController {
         }
         
         if metadata.classFile == NCCommunicationCommon.typeClassFile.video.rawValue || metadata.classFile == NCCommunicationCommon.typeClassFile.audio.rawValue {
+
             playerToolBar = Bundle.main.loadNibNamed("NCPlayerToolBar", owner: self, options: nil)?.first as? NCPlayerToolBar
             if let playerToolBar = playerToolBar {
                 view.addSubview(playerToolBar)
@@ -104,6 +105,11 @@ class NCViewerMedia: UIViewController {
                 playerToolBar.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0).isActive = true
                 playerToolBar.viewerMediaPage = viewerMediaPage
             }
+
+            let urlVideo = NCKTVHTTPCache.shared.getVideoURL(metadata: metadata)
+            if let url = urlVideo.url {
+                self.ncplayer = NCPlayer.init(url: url, autoPlay: self.autoPlay, isProxy: urlVideo.isProxy, imageVideoContainer: self.imageVideoContainer, playerToolBar: self.playerToolBar, metadata: self.metadata, detailView: self.detailView, viewController: self)
+            }
         }
         
         detailViewTopConstraint.constant = 0
@@ -156,13 +162,10 @@ class NCViewerMedia: UIViewController {
 
         if metadata.classFile == NCCommunicationCommon.typeClassFile.video.rawValue || metadata.classFile == NCCommunicationCommon.typeClassFile.audio.rawValue {
 
-            let urlVideo = NCKTVHTTPCache.shared.getVideoURL(metadata: metadata)
-
-            if let url = urlVideo.url {
-                self.ncplayer = NCPlayer.init(url: url, autoPlay: self.autoPlay, isProxy: urlVideo.isProxy, imageVideoContainer: self.imageVideoContainer, playerToolBar: self.playerToolBar, metadata: self.metadata, detailView: self.detailView, viewController: self)
-            }
-
             if let ncplayer = self.ncplayer {
+                if !ncplayer.isOpenPlayer {
+                    ncplayer.openAVPlayer()
+                }
                 self.viewerMediaPage?.updateCommandCenter(ncplayer: ncplayer, metadata: self.metadata)
             }