marinofaggiana 3 tahun lalu
induk
melakukan
708c5465ad

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

@@ -66,7 +66,7 @@ class NCPlayer: NSObject {
         observerAVPlayerItemDidPlayToEndTime = NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: appDelegate.player?.currentItem, queue: .main) { (notification) in
             if let item = notification.object as? AVPlayerItem, let currentItem = self.appDelegate.player?.currentItem, item == currentItem {
                 self.videoSeek(time: .zero)
-                self.playerToolBar?.showToolBar(metadata: metadata, detailView: nil)
+                self.playerToolBar?.showToolBar(metadata: metadata, detailView: nil, enableTimerAutoHide: false)
                 NCKTVHTTPCache.shared.saveCache(metadata: metadata)
             }
         }
@@ -98,7 +98,7 @@ class NCPlayer: NSObject {
                         NCManageDatabase.shared.addVideoTime(metadata: metadata, time: nil, durationTime: durationTime)
                         self.playerToolBar?.setBarPlayer(ncplayer: self, timeSeek: timeSeek, metadata: metadata)
                         self.generatorImagePreview()
-                        self.playerToolBar?.showToolBar(metadata: metadata, detailView: detailView)
+                        self.playerToolBar?.showToolBar(metadata: metadata, detailView: detailView, enableTimerAutoHide: false)
                     }
                     break
                 case .failed:

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

@@ -143,13 +143,21 @@ class NCPlayerToolBar: UIView {
         }
     }
     
-    public func showToolBar(metadata: tableMetadata, detailView: NCViewerMediaDetailView?) {
+    private func startTimerAutoHide() {
+        
+        timerAutoHide?.invalidate()
+        timerAutoHide = Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(automaticHideToolBar), userInfo: nil, repeats: false)
+    }
+    
+    public func showToolBar(metadata: tableMetadata, detailView: NCViewerMediaDetailView?, enableTimerAutoHide: Bool) {
         
         if metadata.classFile != NCCommunicationCommon.typeClassFile.video.rawValue && metadata.classFile != NCCommunicationCommon.typeClassFile.audio.rawValue { return }
         if metadata.livePhoto { return }
         
         timerAutoHide?.invalidate()
-        timerAutoHide = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(automaticHideToolBar), userInfo: nil, repeats: false)
+        if enableTimerAutoHide {
+            startTimerAutoHide()
+        }
         
         if !self.isHidden { return }
         if let detailView = detailView {
@@ -258,8 +266,10 @@ class NCPlayerToolBar: UIView {
             if let time = appDelegate.player?.currentTime() {
                 ncplayer?.saveTime(time)
             }
+            timerAutoHide?.invalidate()
         } else if appDelegate.player?.timeControlStatus == .paused {
             ncplayer?.videoPlay()
+            startTimerAutoHide()
         } else if appDelegate.player?.timeControlStatus == .waitingToPlayAtSpecifiedRate {
             print("timeControlStatus.waitingToPlayAtSpecifiedRate")
             if let reason = appDelegate.player?.reasonForWaitingToPlay {

+ 1 - 1
iOSClient/Viewer/NCViewerMedia/NCViewerMedia.swift

@@ -155,7 +155,7 @@ class NCViewerMedia: UIViewController {
             navigationController?.setNavigationBarHidden(false, animated: true)
             progressView.isHidden = false
 
-            currentViewController.playerToolBar.showToolBar(metadata: currentViewController.metadata, detailView: currentViewController.detailView)
+            currentViewController.playerToolBar.showToolBar(metadata: currentViewController.metadata, detailView: currentViewController.detailView, enableTimerAutoHide: true)
             
             NCUtility.shared.colorNavigationController(navigationController, backgroundColor: NCBrandColor.shared.systemBackground, titleColor: NCBrandColor.shared.label, tintColor: nil, withoutShadow: false)
             view.backgroundColor = NCBrandColor.shared.systemBackground