marinofaggiana 4 rokov pred
rodič
commit
b7c9abad8f

+ 10 - 0
iOSClient/Viewer/NCViewerImage/NCViewerImage.storyboard

@@ -33,6 +33,12 @@
                                     <constraint firstAttribute="height" constant="1" id="F4E-lI-3jZ"/>
                                 </constraints>
                             </progressView>
+                            <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NSc-sb-T8L">
+                                <rect key="frame" x="0.0" y="813" width="414" height="49"/>
+                                <items>
+                                    <barButtonItem systemItem="play" id="hHF-Q3-tyB"/>
+                                </items>
+                            </toolbar>
                         </subviews>
                         <viewLayoutGuide key="safeArea" id="Ozy-9S-dMl"/>
                         <color key="backgroundColor" systemColor="systemBackgroundColor"/>
@@ -44,6 +50,9 @@
                             <constraint firstItem="Ozy-9S-dMl" firstAttribute="trailing" secondItem="sD9-1i-ZdY" secondAttribute="trailing" id="KQa-Ni-1TC"/>
                             <constraint firstItem="fpt-Rz-5fT" firstAttribute="leading" secondItem="wvY-tB-6ZK" secondAttribute="leading" id="Kzi-Hg-Ocf"/>
                             <constraint firstItem="fpt-Rz-5fT" firstAttribute="top" secondItem="wvY-tB-6ZK" secondAttribute="top" id="NnL-9A-ht1"/>
+                            <constraint firstItem="Ozy-9S-dMl" firstAttribute="bottom" secondItem="NSc-sb-T8L" secondAttribute="bottom" id="OeM-QW-eVv"/>
+                            <constraint firstItem="Ozy-9S-dMl" firstAttribute="trailing" secondItem="NSc-sb-T8L" secondAttribute="trailing" id="eQ1-te-slQ"/>
+                            <constraint firstItem="NSc-sb-T8L" firstAttribute="leading" secondItem="Ozy-9S-dMl" secondAttribute="leading" id="psi-dc-yia"/>
                             <constraint firstAttribute="trailing" secondItem="fpt-Rz-5fT" secondAttribute="trailing" id="xh9-IP-ti7"/>
                         </constraints>
                     </view>
@@ -51,6 +60,7 @@
                     <nil key="simulatedBottomBarMetrics"/>
                     <connections>
                         <outlet property="progressView" destination="sD9-1i-ZdY" id="nag-cc-Up3"/>
+                        <outlet property="toolBar" destination="NSc-sb-T8L" id="cKx-kX-JPa"/>
                     </connections>
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="qhs-BU-mEq" userLabel="First Responder" sceneMemberID="firstResponder"/>

+ 34 - 1
iOSClient/Viewer/NCViewerImage/NCViewerImagePageContainer.swift

@@ -28,6 +28,7 @@ import NCCommunication
 class NCViewerImagePageContainer: UIViewController, UIGestureRecognizerDelegate {
 
     @IBOutlet weak var progressView: UIProgressView!
+    @IBOutlet weak var toolBar: UIToolbar!
 
     enum ScreenMode {
         case full, normal
@@ -376,12 +377,14 @@ class NCViewerImagePageContainer: UIViewController, UIGestureRecognizerDelegate
 
         currentMetadata = metadata
         currentViewerImageZoom = viewerImageZoom
+        toolBar.isHidden = true
         
         playerVideo?.pause()
         
         if (currentMetadata.typeFile == k_metadataTypeFile_video || currentMetadata.typeFile == k_metadataTypeFile_audio) {
 
             if CCUtility.fileProviderStorageSize(metadata.ocId, fileNameView: metadata.fileNameView) > 0 {
+                toolBar.isHidden = false
                 playVideo(metadata: metadata)
             }
         }
@@ -495,7 +498,7 @@ class NCViewerImagePageContainer: UIViewController, UIGestureRecognizerDelegate
     }
     
     func playVideo(metadata: tableMetadata) {
-        
+                
         currentViewerImageZoom?.statusViewImage.isHidden = true
         
         playerVideo = AVPlayer(url: URL(fileURLWithPath: CCUtility.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: metadata.fileNameView)!))
@@ -507,16 +510,46 @@ class NCViewerImagePageContainer: UIViewController, UIGestureRecognizerDelegate
             videoLayer!.videoGravity = AVLayerVideoGravity.resizeAspectFill
             
             currentViewerImageZoom!.imageView.layer.addSublayer(videoLayer!)
+            
+            // At end go back to start
+            NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: nil, queue: nil) { (notification) in
+                self.playerVideo?.seek(to: CMTime.zero)
+            }
                         
+            playerVideo?.addObserver(self, forKeyPath: "rate", options: [], context: nil)
             playerVideo?.play()
         }
     }
     
     //MARK: - Action
     
+    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
+        
+        if keyPath != nil && keyPath == "rate" {
+            
+            if playerVideo?.rate == 1 {
+                print("start")
+                let item = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.pause, target: self, action: #selector(videoPause))
+                toolBar.setItems([item], animated: true)
+            } else {
+                print("pause")
+                let item = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.play, target: self, action: #selector(self.videoPlay))
+                self.toolBar.setItems([item], animated: true)
+            }
+        }
+    }
+    
     @objc func openMenuMore() {
         NCViewer.shared.toggleMoreMenu(viewController: self, metadata: currentMetadata)
     }
+    
+    @objc func videoPause() {
+        playerVideo?.pause()
+    }
+    
+    @objc func videoPlay() {
+        playerVideo?.play()
+    }
 }
 
 extension NCViewerImagePageContainer: UIPageViewControllerDelegate, UIPageViewControllerDataSource {

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

@@ -113,7 +113,7 @@ class NCViewerVideoAudio: AVPlayerViewController {
             if player?.rate == 1 {
                 print("start")
             } else {
-                print("stop")
+                print("pause")
             }
             
             saveCache()