瀏覽代碼

improved code

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

+ 12 - 0
iOSClient/Viewer/NCViewerMedia/NCPlayer/NCPlayer.swift

@@ -160,6 +160,11 @@ class NCPlayer: NSObject {
     
     //MARK: -
     
+    func isPlay() -> Bool {
+        
+        if appDelegate.player?.rate == 1 { return true } else { return false }
+    }
+    
     func playerPlay() {
                 
         appDelegate.player?.play()
@@ -182,6 +187,13 @@ class NCPlayer: NSObject {
         generatorImagePreview()
     }
     
+    func saveCurrentTime() {
+        
+        if let player = appDelegate.player {
+            saveTime(player.currentTime())
+        }
+    }
+    
     func videoSeek(time: CMTime) {
         
         appDelegate.player?.seek(to: time)

+ 12 - 11
iOSClient/Viewer/NCViewerMedia/NCPlayer/NCPlayerToolBar.swift

@@ -216,8 +216,10 @@ class NCPlayerToolBar: UIView {
             pipButton.isEnabled = false
         }
         
-        if appDelegate.player?.rate == 1 { namedPlay = "pause.fill"}
-        
+        if let ncplayer = ncplayer, ncplayer.isPlay() {
+            namedPlay = "pause.fill"
+        }
+                
         if timeSeek != nil {
             playbackSlider.value = Float(timeSeek!.value)
         } else {
@@ -254,23 +256,23 @@ class NCPlayerToolBar: UIView {
     
     @objc func onSliderValChanged(slider: UISlider, event: UIEvent) {
         
-        if let touchEvent = event.allTouches?.first {
+        if let touchEvent = event.allTouches?.first, let ncplayer = ncplayer {
             
             let seconds: Int64 = Int64(self.playbackSlider.value)
             let targetTime: CMTime = CMTimeMake(value: seconds, timescale: 1000)
             
             switch touchEvent.phase {
             case .began:
-                wasInPlay = appDelegate.player?.rate == 1 ? true : false
-                ncplayer?.playerPause()
+                wasInPlay = ncplayer.isPlay()
+                ncplayer.playerPause()
                 playbackSliderEvent = .began
             case .moved:
-                ncplayer?.videoSeek(time: targetTime)
+                ncplayer.videoSeek(time: targetTime)
                 playbackSliderEvent = .moved
             case .ended:
-                ncplayer?.videoSeek(time: targetTime)
+                ncplayer.videoSeek(time: targetTime)
                 if wasInPlay {
-                    ncplayer?.playerPlay()
+                    ncplayer.playerPlay()
                 }
                 playbackSliderEvent = .ended
             default:
@@ -293,9 +295,7 @@ class NCPlayerToolBar: UIView {
         
         if appDelegate.player?.timeControlStatus == .playing {
             ncplayer?.playerPause()
-            if let time = appDelegate.player?.currentTime() {
-                ncplayer?.saveTime(time)
-            }
+            ncplayer?.saveCurrentTime()
             timerAutoHide?.invalidate()
         } else if appDelegate.player?.timeControlStatus == .paused {
             ncplayer?.playerPlay()
@@ -329,6 +329,7 @@ class NCPlayerToolBar: UIView {
     @IBAction func setPip(_ sender: Any) {
         
         ncplayer?.pictureInPictureController?.startPictureInPicture()
+        hide()
     }
     
     @IBAction func forwardButtonSec(_ sender: Any) {

+ 6 - 9
iOSClient/Viewer/NCViewerMedia/NCViewerMedia.swift

@@ -115,11 +115,10 @@ class NCViewerMedia: UIViewController {
     override func viewWillDisappear(_ animated: Bool) {
         super.viewWillDisappear(animated)
         
-        if let player = appDelegate.player {
-            if player.rate == 1 {
-                player.pause()
-                currentViewController.ncplayer?.saveTime(player.currentTime())
-            }
+        // Save time video
+        if let ncplayer = currentViewController.ncplayer, ncplayer.isPlay() {
+            ncplayer.playerPause()
+            ncplayer.saveCurrentTime()
         }
         
         NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: NCGlobal.shared.notificationCenterDeleteFile), object: nil)
@@ -428,10 +427,8 @@ extension NCViewerMedia: UIPageViewControllerDelegate, UIPageViewControllerDataS
     func pageViewController(_ pageViewController: UIPageViewController, willTransitionTo pendingViewControllers: [UIViewController]) {
         
         // Save time video
-        if let player = appDelegate.player {
-            if player.rate == 1 {
-                currentViewController.ncplayer?.saveTime(player.currentTime())
-            }
+        if let ncplayer = currentViewController.ncplayer, ncplayer.isPlay() {
+            ncplayer.saveCurrentTime()
         }
         
         guard let nextViewController = pendingViewControllers.first as? NCViewerMediaZoom else { return }