Browse Source

Remote Command Center

Signed-off-by: marinofaggiana <marino@marinofaggiana.com>
marinofaggiana 3 years ago
parent
commit
07bd20aa04
1 changed files with 13 additions and 0 deletions
  1. 13 0
      iOSClient/Viewer/NCViewerMedia/NCPlayer/NCPlayer.swift

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

@@ -38,6 +38,7 @@ class NCPlayer: NSObject {
     private var playerToolBar: NCPlayerToolBar?
     private var detailView: NCViewerMediaDetailView?
     private var observerAVPlayerItemDidPlayToEndTime: Any?
+    private var observerAVPlayerItemPlaybackTimeObserver: Any?
     
     public var metadata: tableMetadata?
     public var videoLayer: AVPlayerLayer?
@@ -88,6 +89,11 @@ class NCPlayer: NSObject {
             }
         }
         
+        let interval = CMTime(seconds:1.0, preferredTimescale: CMTimeScale(NSEC_PER_SEC))
+        observerAVPlayerItemPlaybackTimeObserver = appDelegate.player?.addPeriodicTimeObserver(forInterval: interval, queue: DispatchQueue.main) { time in
+            print(time.seconds)
+        }
+        
         appDelegate.player?.currentItem?.asset.loadValuesAsynchronously(forKeys: ["playable"], completionHandler: {
             var error: NSError? = nil
             let status = self.appDelegate.player?.currentItem?.asset.statusOfValue(forKey: "playable", error: &error)
@@ -171,6 +177,10 @@ class NCPlayer: NSObject {
         if let observerAVPlayerItemDidPlayToEndTime = self.observerAVPlayerItemDidPlayToEndTime {
             NotificationCenter.default.removeObserver(observerAVPlayerItemDidPlayToEndTime)
         }
+        if let observerAVPlayerItemPlaybackTimeObserver = self.observerAVPlayerItemPlaybackTimeObserver {
+            appDelegate.player?.removeTimeObserver(observerAVPlayerItemPlaybackTimeObserver)
+            self.observerAVPlayerItemPlaybackTimeObserver = nil
+        }
         NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: NCGlobal.shared.notificationCenterApplicationDidEnterBackground), object: nil)
         
         self.videoLayer?.removeFromSuperlayer()
@@ -186,6 +196,9 @@ class NCPlayer: NSObject {
         } catch {
             print(error)
         }
+        
+        UIApplication.shared.endReceivingRemoteControlEvents()
+        MPNowPlayingInfoCenter.default().nowPlayingInfo = [:]
     }
     
     //MARK: - NotificationCenter