Marino Faggiana 1 year ago
parent
commit
047b1d3f55

+ 13 - 8
iOSClient/Viewer/NCViewerMedia/NCPlayer/NCPlayer.swift

@@ -61,7 +61,7 @@ class NCPlayer: NSObject {
     deinit {
 
         print("deinit NCPlayer with ocId \(metadata.ocId)")
-        player?.stop()
+        closeAVPlayer()
     }
 
     func openAVPlayer(url: URL) {
@@ -114,7 +114,7 @@ class NCPlayer: NSObject {
 
     func closeAVPlayer() {
 
-        playerPause(withSnapshot: false)
+        playerStop()
 
         NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: NCGlobal.shared.notificationCenterApplicationDidEnterBackground), object: nil)
         NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: NCGlobal.shared.notificationCenterApplicationDidBecomeActive), object: nil)
@@ -159,6 +159,11 @@ class NCPlayer: NSObject {
         }
     }
 
+    @objc func playerStop() {
+
+        player?.stop()
+    }
+
     @objc func playerPause(withSnapshot: Bool = true) {
 
         if let width = width, let height = height, withSnapshot {
@@ -200,12 +205,6 @@ extension NCPlayer: VLCMediaPlayerDelegate {
 
         switch player.state {
         case .stopped:
-            if let url = self.url {
-                NCManageDatabase.shared.addVideo(metadata: metadata, position: 0)
-                NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterShowPlayerToolBar, userInfo: ["ocId": self.metadata.ocId, "enableTimerAutoHide": false])
-                self.thumbnailer?.fetchThumbnail()
-                self.openAVPlayer(url: url)
-            }
             print("Played mode: STOPPED")
             break
         case .opening:
@@ -215,6 +214,12 @@ extension NCPlayer: VLCMediaPlayerDelegate {
             print("Played mode: BUFFERING")
             break
         case .ended:
+            if let url = self.url {
+                NCManageDatabase.shared.addVideo(metadata: metadata, position: 0)
+                NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterShowPlayerToolBar, userInfo: ["ocId": self.metadata.ocId, "enableTimerAutoHide": false])
+                self.thumbnailer?.fetchThumbnail()
+                self.openAVPlayer(url: url)
+            }
             print("Played mode: ENDED")
             break
         case .error:

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

@@ -116,6 +116,9 @@ class NCPlayerToolBar: UIView {
         self.ncplayer = ncplayer
         self.metadata = metadata
 
+        playButton.setImage(NCUtility.shared.loadImage(named: "play.fill", color: .white, symbolConfiguration: UIImage.SymbolConfiguration(pointSize: 30)), for: .normal)
+        MPNowPlayingInfoCenter.default().nowPlayingInfo?[MPNowPlayingInfoPropertyPlaybackRate] = 0
+
         playbackSlider.value = position
         playbackSlider.addTarget(self, action: #selector(onSliderValChanged(slider:event:)), for: .valueChanged)
 
@@ -212,23 +215,6 @@ class NCPlayerToolBar: UIView {
         }
     }
 
-    func skip(seconds: Float) {
-        guard let ncplayer = ncplayer,
-              let player = ncplayer.player,
-              let length = player.media?.length.intValue
-        else { return }
-
-        let currentPosition = player.position * Float(length / 1000)
-        var newPosition = (currentPosition + seconds) / Float(length / 1000)
-
-        if newPosition < 0 || newPosition > 1 {
-            newPosition = 0
-        }
-
-        ncplayer.videoSeek(position: newPosition)
-        reStartTimerAutoHide()
-    }
-
     func stopTimerAutoHide() {
 
         timerAutoHide?.invalidate()
@@ -301,11 +287,14 @@ class NCPlayerToolBar: UIView {
 
     @IBAction func tapForward(_ sender: Any) {
 
-        skip(seconds: 10)
+        ncplayer?.player?.jumpForward(10)
+        reStartTimerAutoHide()
+
     }
 
     @IBAction func tapBack(_ sender: Any) {
 
-        skip(seconds: -10)
+        ncplayer?.player?.jumpBackward(10)
+        reStartTimerAutoHide()
     }
 }

+ 2 - 2
iOSClient/Viewer/NCViewerMedia/NCViewerMediaPage.swift

@@ -425,7 +425,7 @@ class NCViewerMediaPage: UIViewController {
             skipForwardCommand = MPRemoteCommandCenter.shared().skipForwardCommand.addTarget { event in
 
                 let seconds = Float((event as! MPSkipIntervalCommandEvent).interval)
-                self.currentViewController.playerToolBar?.skip(seconds: seconds)
+                self.currentViewController.playerToolBar?.tapForward(self)
                 return.success
             }
 
@@ -433,7 +433,7 @@ class NCViewerMediaPage: UIViewController {
             skipBackwardCommand = MPRemoteCommandCenter.shared().skipBackwardCommand.addTarget { event in
 
                 let seconds = Float((event as! MPSkipIntervalCommandEvent).interval)
-                self.currentViewController.playerToolBar?.skip(seconds: -seconds)
+                self.currentViewController.playerToolBar?.tapBack(self)
                 return.success
             }
         }