marinofaggiana 3 năm trước cách đây
mục cha
commit
335b59deaa

+ 9 - 1
iOSClient/Viewer/NCViewerVideo/NCViewerVideo.swift

@@ -61,6 +61,8 @@ class NCViewerVideo: NSObject {
         
         func initPlayer(url: URL) {
             
+            var durationSeconds: Double = 0
+            
             self.player = AVPlayer(url: url)
             self.player?.isMuted = CCUtility.getAudioMute()
             self.videoLayer = AVPlayerLayer(player: self.player)
@@ -79,7 +81,13 @@ class NCViewerVideo: NSObject {
                         
             self.rateObserver = self.player?.addObserver(self, forKeyPath: "rate", options: [], context: nil)
             
-            viewerVideoToolBar?.setBarPlayer(player: self.player, metadata: metadata)
+            // save durationSeconds on database
+            if let duration: CMTime = (player?.currentItem?.asset.duration) {
+                durationSeconds = CMTimeGetSeconds(duration)
+                NCManageDatabase.shared.addVideoTime(metadata: metadata, time: nil, durationSeconds: durationSeconds)
+            }
+            
+            viewerVideoToolBar?.setBarPlayer(player: self.player, metadata: metadata, durationSeconds: durationSeconds)
         }
         
         //NCNetworking.shared.getVideoUrl(metadata: metadata) { url in

+ 3 - 8
iOSClient/Viewer/NCViewerVideo/NCViewerVideoToolBar.swift

@@ -82,14 +82,11 @@ class NCViewerVideoToolBar: UIView {
         setToolBarImage()
     }
     
-    func setBarPlayer(player: AVPlayer?, metadata: tableMetadata) {
+    func setBarPlayer(player: AVPlayer?, metadata: tableMetadata, durationSeconds: Double) {
         
         self.player = player
         self.metadata = metadata
-        
-        let duration: CMTime = (player?.currentItem?.asset.duration)!
-        let durationSeconds: Float64 = CMTimeGetSeconds(duration)
-        
+                
         playbackSlider.value = 0
         playbackSlider.minimumValue = 0
         playbackSlider.maximumValue = Float(durationSeconds)
@@ -97,9 +94,7 @@ class NCViewerVideoToolBar: UIView {
 
         labelCurrentTime.text = NCUtility.shared.stringFromTimeInterval(interval: 0)
         labelOverallDuration.text = "-" + NCUtility.shared.stringFromTimeInterval(interval: durationSeconds)
-        
-        NCManageDatabase.shared.addVideoTime(metadata: metadata, time: nil, durationSeconds: durationSeconds)
-        
+                
         player?.addPeriodicTimeObserver(forInterval: CMTimeMakeWithSeconds(1, preferredTimescale: 1), queue: .main, using: { (CMTime) in
             
             if self.player?.currentItem?.status == .readyToPlay {