فهرست منبع

add seek time

marinofaggiana 4 سال پیش
والد
کامیت
975a20986f

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

@@ -64,6 +64,7 @@ class NCViewerImage: UIViewController, UIGestureRecognizerDelegate {
     private var videoLayer: AVPlayerLayer?
     private var timeObserverToken: Any?
     private var rateObserverToken: Any?
+    var seekTime: CMTime?
 
     override func viewDidLoad() {
         super.viewDidLoad()
@@ -87,7 +88,7 @@ class NCViewerImage: UIViewController, UIGestureRecognizerDelegate {
         viewerImageZoom.index = currentIndex
         viewerImageZoom.image = getImageMetadata(metadatas[currentIndex])
         viewerImageZoom.metadata = metadatas[currentIndex]
-        viewerImageZoom.delegate = self
+        viewerImageZoom.delegateViewerImage = self
 
         singleTapGestureRecognizer.require(toFail: viewerImageZoom.doubleTapGestureRecognizer)
         
@@ -313,6 +314,8 @@ class NCViewerImage: UIViewController, UIGestureRecognizerDelegate {
 
             let video = NCViewerVideoAudio()
             video.metadata = currentMetadata
+            video.seekTime = player?.currentTime()
+            video.delegateViewerImage = self
             present(video, animated: false) { }
             
         } else {
@@ -596,6 +599,10 @@ class NCViewerImage: UIViewController, UIGestureRecognizerDelegate {
         rateObserverToken = player?.addObserver(self, forKeyPath: "rate", options: [], context: nil)
         
         player?.play()
+        if seekTime != nil {
+            player?.seek(to: seekTime!)
+            seekTime = nil
+        }
     }
     
     @objc func videoStop() {
@@ -635,7 +642,7 @@ extension NCViewerImage: UIPageViewControllerDelegate, UIPageViewControllerDataS
         viewerImageZoom.index = currentIndex
         viewerImageZoom.image = getImageMetadata(metadatas[currentIndex])
         viewerImageZoom.metadata = metadatas[currentIndex]
-        viewerImageZoom.delegate = self
+        viewerImageZoom.delegateViewerImage = self
         
         singleTapGestureRecognizer.require(toFail: viewerImageZoom.doubleTapGestureRecognizer)
         
@@ -651,7 +658,7 @@ extension NCViewerImage: UIPageViewControllerDelegate, UIPageViewControllerDataS
         viewerImageZoom.index = currentIndex
         viewerImageZoom.image = getImageMetadata(metadatas[currentIndex])
         viewerImageZoom.metadata = metadatas[currentIndex]
-        viewerImageZoom.delegate = self
+        viewerImageZoom.delegateViewerImage = self
         
         singleTapGestureRecognizer.require(toFail: viewerImageZoom.doubleTapGestureRecognizer)
         
@@ -666,7 +673,7 @@ extension NCViewerImage: UIPageViewControllerDelegate, UIPageViewControllerDataS
         viewerImageZoom.index = currentIndex - 1
         viewerImageZoom.image = getImageMetadata(metadatas[currentIndex - 1])
         viewerImageZoom.metadata = metadatas[currentIndex - 1]
-        viewerImageZoom.delegate = self
+        viewerImageZoom.delegateViewerImage = self
         
         self.singleTapGestureRecognizer.require(toFail: viewerImageZoom.doubleTapGestureRecognizer)
         
@@ -681,7 +688,7 @@ extension NCViewerImage: UIPageViewControllerDelegate, UIPageViewControllerDataS
         viewerImageZoom.index = currentIndex + 1
         viewerImageZoom.image = getImageMetadata(metadatas[currentIndex + 1])
         viewerImageZoom.metadata = metadatas[currentIndex + 1]
-        viewerImageZoom.delegate = self
+        viewerImageZoom.delegateViewerImage = self
         
         singleTapGestureRecognizer.require(toFail: viewerImageZoom.doubleTapGestureRecognizer)
 

+ 3 - 3
iOSClient/Viewer/NCViewerImage/NCViewerImageZoom.swift

@@ -33,7 +33,7 @@ class NCViewerImageZoom: UIViewController {
     @IBOutlet weak var statusViewImage: UIImageView!
     @IBOutlet weak var statusLabel: UILabel!
 
-    weak var delegate: NCViewerImage?
+    weak var delegateViewerImage: NCViewerImage?
     
     var image: UIImage?
     var metadata: tableMetadata = tableMetadata()
@@ -76,13 +76,13 @@ class NCViewerImageZoom: UIViewController {
     override func viewWillAppear(_ animated: Bool) {
         super.viewWillAppear(animated)
 
-        delegate?.viewWillAppearImageZoom(viewerImageZoom: self, metadata: metadata)
+        delegateViewerImage?.viewWillAppearImageZoom(viewerImageZoom: self, metadata: metadata)
     }
     
     override func viewDidAppear(_ animated: Bool) {
         super.viewDidAppear(animated)
         
-        delegate?.viewDidAppearImageZoom(viewerImageZoom: self, metadata: metadata)
+        delegateViewerImage?.viewDidAppearImageZoom(viewerImageZoom: self, metadata: metadata)
     }
     
     override func viewDidLayoutSubviews() {

+ 7 - 0
iOSClient/Viewer/NCViewerVideoAudio/NCViewerVideoAudio.swift

@@ -27,6 +27,8 @@ class NCViewerVideoAudio: AVPlayerViewController {
     
     let appDelegate = UIApplication.shared.delegate as! AppDelegate
     var metadata = tableMetadata()
+    var seekTime: CMTime?
+    weak var delegateViewerImage: NCViewerImage?
     private var rateObserverToken: Any?
 
     override func viewDidLoad() {
@@ -65,6 +67,10 @@ class NCViewerVideoAudio: AVPlayerViewController {
         
             rateObserverToken = player?.addObserver(self, forKeyPath: "rate", options: [], context: nil)
             player?.play()
+            if seekTime != nil {
+                player?.seek(to: seekTime!)
+                seekTime = nil
+            }
         }
     }
     
@@ -77,6 +83,7 @@ class NCViewerVideoAudio: AVPlayerViewController {
             player?.removeObserver(self, forKeyPath: "rate")
             NotificationCenter.default.removeObserver(self, name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil)
             NCKTVHTTPCache.shared.stopProxy()
+            self.delegateViewerImage?.seekTime = player?.currentTime()
             self.rateObserverToken = nil
         }
     }