marinofaggiana 3 年之前
父節點
當前提交
3f5e81891d

+ 4 - 7
iOSClient/Viewer/NCViewerMedia/NCPlayer/NCPlayer.swift

@@ -36,12 +36,12 @@ class NCPlayer: NSObject {
     public var metadata: tableMetadata?
     public var player: AVPlayer?
     public var videoLayer: AVPlayerLayer?
-    
 
     init(url: URL, imageVideoContainer: imageVideoContainerView?, playerToolBar: NCPlayerToolBar?, metadata: tableMetadata) {
         super.init()
         
         print("Play URL: \(url)")
+        var timeSeek: CMTime = .zero
         
         self.player = AVPlayer(url: url)
         self.playerToolBar = playerToolBar
@@ -49,18 +49,15 @@ class NCPlayer: NSObject {
         
         if metadata.livePhoto {
             self.player?.isMuted = false
-            self.player?.seek(to: .zero)
         } else if metadata.classFile == NCCommunicationCommon.typeClassFile.audio.rawValue {
             self.player?.isMuted = CCUtility.getAudioMute()
-            self.player?.seek(to: .zero)
         } else {
             self.player?.isMuted = CCUtility.getAudioMute()
             if let time = NCManageDatabase.shared.getVideoTime(metadata: metadata) {
-                self.player?.seek(to: time)
-            } else {
-                self.player?.seek(to: .zero)
+                timeSeek = time
             }
         }
+        self.player?.seek(to: timeSeek)
         
         // At end go back to start & show toolbar
         observerAVPlayerItemDidPlayToEndTime = NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: self.player?.currentItem, queue: .main) { (notification) in
@@ -96,7 +93,7 @@ class NCPlayer: NSObject {
                             }
                         }
                         NCManageDatabase.shared.addVideoTime(metadata: metadata, time: nil, durationTime: durationTime)
-                        self.playerToolBar?.setBarPlayer(ncplayer: self)
+                        self.playerToolBar?.setBarPlayer(ncplayer: self, timeSeek: timeSeek)
                         self.generatorImagePreview()
                     }
                     break

+ 8 - 4
iOSClient/Viewer/NCViewerMedia/NCPlayer/NCPlayerToolBar.swift

@@ -90,7 +90,7 @@ class NCPlayerToolBar: UIView {
         print("deinit NCPlayerToolBar")
     }
     
-    func setBarPlayer(ncplayer: NCPlayer) {
+    func setBarPlayer(ncplayer: NCPlayer, timeSeek: CMTime) {
                         
         self.ncplayer = ncplayer
         if let durationTime = NCManageDatabase.shared.getVideoDurationTime(metadata: ncplayer.metadata) {
@@ -105,7 +105,7 @@ class NCPlayerToolBar: UIView {
             labelCurrentTime.text = NCUtility.shared.stringFromTime(.zero)
             labelOverallDuration.text = "-" + NCUtility.shared.stringFromTime(durationTime)
         }
-        updateToolBar()
+        updateToolBar(timeSeek: timeSeek)
         
         ncplayer.player?.addPeriodicTimeObserver(forInterval: CMTimeMakeWithSeconds(1, preferredTimescale: 1), queue: .main, using: { (CMTime) in
             
@@ -154,7 +154,7 @@ class NCPlayerToolBar: UIView {
         }
     }
     
-    public func updateToolBar() {
+    public func updateToolBar(timeSeek: CMTime? = nil) {
 
         var namedPlay = "play.fill"
         var currentTime = ncplayer?.player?.currentTime() ?? .zero
@@ -162,7 +162,11 @@ class NCPlayerToolBar: UIView {
         
         if ncplayer?.player?.rate == 1 { namedPlay = "pause.fill"}
         
-        playbackSlider.value = Float(currentTime.value)
+        if timeSeek != nil {
+            playbackSlider.value = Float(timeSeek!.value)
+        } else {
+            playbackSlider.value = Float(currentTime.value)
+        }
         playbackSlider.isEnabled = true
         
         backButton.setImage(NCUtility.shared.loadImage(named: "gobackward.15", color: .white), for: .normal)