marinofaggiana 4 years ago
parent
commit
0d3b7154e1

+ 5 - 6
iOSClient/Viewer/NCViewerImage/NCViewerImage.swift

@@ -478,7 +478,9 @@ class NCViewerImage: UIViewController {
     override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
         
         if keyPath != nil && keyPath == "rate" {
-           setToolBar()
+            
+            setToolBar()
+            
             if ((player?.rate) == 1) {
                 if let tableVideo = NCManageDatabase.sharedInstance.getVideo(account: self.currentMetadata.account, ocId: self.currentMetadata.ocId) {
                     let time = CMTimeMake(value: tableVideo.sec, timescale: 1)
@@ -690,23 +692,20 @@ extension NCViewerImage: UIGestureRecognizerDelegate {
             
             if pictureInPictureOcId != currentMetadata.ocId {
                 
+                videoStop()
+                
                 // Kill PIP
                 appDelegate.activeViewerVideo?.player?.replaceCurrentItem(with: nil)
                 //
                 
                 appDelegate.activeViewerVideo = NCViewerVideo()
                 appDelegate.activeViewerVideo?.metadata = currentMetadata
-                appDelegate.activeViewerVideo?.seekTime = player?.currentTime()
                 appDelegate.activeViewerVideo?.delegateViewerVideo = self
                 if let currentViewerVideo = appDelegate.activeViewerVideo {
                     present(currentViewerVideo, animated: false) { }
                 }
             }
             
-            DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
-                self.videoStop()
-            }
-            
         } else {
                     
             if currentMode == .full {

+ 13 - 5
iOSClient/Viewer/NCViewerVideo/NCViewerVideo.swift

@@ -32,7 +32,6 @@ protocol NCViewerVideoDelegate {
     
     let appDelegate = UIApplication.shared.delegate as! AppDelegate
     var metadata = tableMetadata()
-    var seekTime: CMTime?
     var pictureInPicture: Bool = false
     var delegateViewerVideo: NCViewerVideoDelegate?
     private var rateObserverToken: Any?
@@ -59,10 +58,6 @@ protocol NCViewerVideoDelegate {
         
             rateObserverToken = player?.addObserver(self, forKeyPath: "rate", options: [], context: nil)
             player?.play()
-            if seekTime != nil {
-                player?.seek(to: seekTime!)
-                seekTime = nil
-            }
             player?.isMuted = CCUtility.getAudioMute()
         }
     }
@@ -92,7 +87,20 @@ protocol NCViewerVideoDelegate {
     override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
         
         if keyPath != nil && keyPath == "rate" {
+            
             NCKTVHTTPCache.shared.saveCache(metadata: metadata)
+            
+            if ((player?.rate) == 1) {
+                if let tableVideo = NCManageDatabase.sharedInstance.getVideo(account: self.metadata.account, ocId: self.metadata.ocId) {
+                    let time = CMTimeMake(value: tableVideo.sec, timescale: 1)
+                    player?.seek(to: time)
+                }
+            } else {
+                if let time = player?.currentTime() {
+                    NCManageDatabase.sharedInstance.addVideo(account: self.metadata.account, ocId: self.metadata.ocId, time: time)
+                }
+                print("Pause")
+            }
         }
     }
 }