Pārlūkot izejas kodu

Update NCPlayerToolBar.swift

Marino Faggiana 2 gadi atpakaļ
vecāks
revīzija
dbbdad0745

+ 40 - 33
iOSClient/Viewer/NCViewerMedia/NCPlayer/NCPlayerToolBar.swift

@@ -150,13 +150,14 @@ class NCPlayerToolBar: UIView {
 
     public func update(position: Float?) {
 
-        guard let ncplayer = self.ncplayer, let position = position else { return }
+        guard let ncplayer = self.ncplayer,
+              let length = ncplayer.player?.media?.length.intValue,
+              let position = position
+        else { return }
 
         // SAVE POSITION
         if position > 0 {
             ncplayer.savePosition(position)
-        } else {
-            
         }
 
         // MUTE
@@ -176,9 +177,14 @@ class NCPlayerToolBar: UIView {
         labelCurrentTime.text = ncplayer.player?.time.stringValue
         labelLeftTime.text = ncplayer.player?.remainingTime?.stringValue
 
-        // BACK
-        backButton.setImage(NCUtility.shared.loadImage(named: "gobackward.10", color: .white), for: .normal)
-        backButton.isEnabled = true
+        // BACK FORWARD
+        if length > 0 {
+            backButton.isEnabled = true
+            forwardButton.isEnabled = true
+        } else {
+            backButton.isEnabled = false
+            forwardButton.isEnabled = false
+        }
 
         // PLAY
         if ncplayer.isPlay() {
@@ -190,9 +196,7 @@ class NCPlayerToolBar: UIView {
         playButton.setImage(NCUtility.shared.loadImage(named: namedPlay, color: .white, symbolConfiguration: UIImage.SymbolConfiguration(pointSize: 30)), for: .normal)
         playButton.isEnabled = true
 
-        // FORWARD
-        forwardButton.setImage(NCUtility.shared.loadImage(named: "goforward.10", color: .white), for: .normal)
-        forwardButton.isEnabled = true
+
     }
 
     // MARK: -
@@ -252,16 +256,17 @@ class NCPlayerToolBar: UIView {
     }
 
     func skip(seconds: Float) {
-        guard let ncplayer = ncplayer, let player = ncplayer.player else { return }
+        guard let ncplayer = ncplayer,
+              let player = ncplayer.player,
+              let lengthInSeconds = player.media?.length.intValue
+        else { return }
 
-        let lengthInSeconds = Float((player.media?.length.intValue ?? 0) / 1000)
-        let currentInSeconds = player.position * lengthInSeconds
+        let currentInSeconds = player.position * Float(lengthInSeconds / 1000)
         let newPositionSeconds = currentInSeconds + seconds
-        let newPosition = newPositionSeconds / lengthInSeconds
+        let newPosition = newPositionSeconds / Float(lengthInSeconds / 1000)
 
         ncplayer.videoSeek(position: newPosition)
-
-        update(position: ncplayer.player?.position)
+        update(position: newPosition)
         reStartTimerAutoHide()
     }
 
@@ -274,26 +279,28 @@ class NCPlayerToolBar: UIView {
 
     @objc func onSliderValChanged(slider: UISlider, event: UIEvent) {
 
-        if let touchEvent = event.allTouches?.first, let ncplayer = ncplayer {
-
-            let newPosition = self.playbackSlider.value
-
-            switch touchEvent.phase {
-            case .began:
-                ncplayer.playerPause()
-                playbackSliderEvent = .began
-            case .moved:
-                playbackSliderEvent = .moved
-            case .ended:
-                ncplayer.playerPlay()
-                ncplayer.videoSeek(position: newPosition)
-                playbackSliderEvent = .ended
-            default:
-                break
-            }
+        guard let touchEvent = event.allTouches?.first,
+              let ncplayer = ncplayer
+        else { return }
 
-            reStartTimerAutoHide()
+        let newPosition = self.playbackSlider.value
+
+        switch touchEvent.phase {
+        case .began:
+            ncplayer.playerPause()
+            playbackSliderEvent = .began
+        case .moved:
+            playbackSliderEvent = .moved
+        case .ended:
+            ncplayer.playerPlay()
+            ncplayer.videoSeek(position: newPosition)
+            playbackSliderEvent = .ended
+        default:
+            break
         }
+
+        reStartTimerAutoHide()
+
     }
 
     // MARK: - Action