marinofaggiana 4 жил өмнө
parent
commit
4403cec800

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

@@ -768,8 +768,12 @@ extension NCViewerImage: NCViewerVideoDelegate {
         pictureInPictureOcId = metadata.ocId
     }
     
-    func stopPictureInPicture(metadata: tableMetadata) {
+    func stopPictureInPicture(metadata: tableMetadata, time: CMTime?) {
         pictureInPictureOcId = ""
+        seekTime = time
+        if currentMetadata.ocId == metadata.ocId {
+            videoPlay(metadata: metadata)
+        }
     }
     
     func playerCurrentTime(_ time: CMTime?) {

+ 8 - 2
iOSClient/Viewer/NCViewerVideo/NCViewerVideo.swift

@@ -24,7 +24,7 @@
 import Foundation
 
 protocol NCViewerVideoDelegate {
-    func stopPictureInPicture(metadata: tableMetadata)
+    func stopPictureInPicture(metadata: tableMetadata, time: CMTime?)
     func startPictureInPicture(metadata: tableMetadata)
     func playerCurrentTime(_ time: CMTime?)
 }
@@ -109,6 +109,12 @@ extension NCViewerVideo: AVPlayerViewControllerDelegate {
     
     func playerViewControllerDidStopPictureInPicture(_ playerViewController: AVPlayerViewController) {
         pictureInPicture = false
-        delegateViewerVideo?.stopPictureInPicture(metadata: metadata)
+        if rateObserverToken != nil {
+            player?.removeObserver(self, forKeyPath: "rate")
+            NotificationCenter.default.removeObserver(self, name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil)
+            NCKTVHTTPCache.shared.stopProxy()
+            self.rateObserverToken = nil
+        }
+        delegateViewerVideo?.stopPictureInPicture(metadata: metadata, time: player?.currentTime())
     }
 }