Marino Faggiana 1 gadu atpakaļ
vecāks
revīzija
4556c5b8b4

+ 1 - 0
iOSClient/Utility/CCUtility.h

@@ -211,6 +211,7 @@
 + (NSString *)getDirectoryProviderStorageOcId:(NSString *)ocId fileNameView:(NSString *)fileNameView;
 + (NSString *)getDirectoryProviderStorageIconOcId:(NSString *)ocId etag:(NSString *)etag;
 + (NSString *)getDirectoryProviderStoragePreviewOcId:(NSString *)ocId etag:(NSString *)etag;
++ (NSString *)getDirectoryProviderStorageSnapshotOcId:(NSString *)ocId etag:(NSString *)etag;
 + (BOOL)fileProviderStorageExists:(tableMetadata *)metadata;
 + (int64_t)fileProviderStorageSize:(NSString *)ocId fileNameView:(NSString *)fileNameView;
 + (BOOL)fileProviderStoragePreviewIconExists:(NSString *)ocId etag:(NSString *)etag;

+ 5 - 0
iOSClient/Utility/CCUtility.m

@@ -1107,6 +1107,11 @@
     return [NSString stringWithFormat:@"%@/%@.preview.%@", [self getDirectoryProviderStorageOcId:ocId], etag, [NCGlobal shared].extensionPreview];
 }
 
++ (NSString *)getDirectoryProviderStorageSnapshotOcId:(NSString *)ocId etag:(NSString *)etag
+{
+    return [NSString stringWithFormat:@"%@/%@.snapshot.%@", [self getDirectoryProviderStorageOcId:ocId], etag, [NCGlobal shared].extensionPreview];
+}
+
 + (BOOL)fileProviderStorageExists:(tableMetadata *)metadata
 {
     NSString *fileNameViewPath = [self getDirectoryProviderStorageOcId:metadata.ocId fileNameView:metadata.fileNameView];

+ 17 - 6
iOSClient/Viewer/NCViewerMedia/NCPlayer/NCPlayer.swift

@@ -36,6 +36,7 @@ class NCPlayer: NSObject {
     internal var width: Int?
     internal var height: Int?
     internal var length: Int?
+    internal let fileNameSnapshotLocalPath: String
     internal let fileNamePreviewLocalPath: String
     internal let userAgent = CCUtility.getUserAgent()!
 
@@ -55,6 +56,7 @@ class NCPlayer: NSObject {
         self.metadata = metadata
         self.viewerMediaPage = viewerMediaPage
 
+        fileNameSnapshotLocalPath = CCUtility.getDirectoryProviderStorageSnapshotOcId(metadata.ocId, etag: metadata.etag)!
         fileNamePreviewLocalPath = CCUtility.getDirectoryProviderStoragePreviewOcId(metadata.ocId, etag: metadata.etag)!
 
         super.init()
@@ -93,11 +95,13 @@ class NCPlayer: NSObject {
 
         playerToolBar?.setBarPlayer(position: position, ncplayer: self, metadata: metadata, viewerMediaPage: viewerMediaPage)
 
-        self.player.play()
-        if !autoplay {
-            self.player.pause()
-            if position == 0 {
-                self.player.position = 0
+        if autoplay {
+            player.play()
+        } else {
+            if position == 0, let image = UIImage(contentsOfFile: fileNamePreviewLocalPath) {
+                imageVideoContainer?.image = image
+            } else if let image = UIImage(contentsOfFile: fileNameSnapshotLocalPath) {
+                imageVideoContainer?.image = image
             }
         }
 
@@ -145,7 +149,6 @@ class NCPlayer: NSObject {
 
     @objc func playerStop() {
 
-        savePosition()
         player.stop()
         playerToolBar?.playButtonPlay()
     }
@@ -167,16 +170,23 @@ class NCPlayer: NSObject {
 
         guard metadata.isVideo, isPlay() else { return }
         NCManageDatabase.shared.addVideo(metadata: metadata, position: player.position)
+        if let width = width, let height = height {
+            player.saveVideoSnapshot(at: fileNameSnapshotLocalPath, withWidth: Int32(width), andHeight: Int32(height))
+        }
     }
 
     func jumpForward(_ seconds: Int32) {
 
+        player.play()
         player.jumpForward(seconds)
+        playerToolBar?.playButtonPause()
     }
 
     func jumpBackward(_ seconds: Int32) {
 
+        player.play()
         player.jumpBackward(seconds)
+        playerToolBar?.playButtonPause()
     }
 }
 
@@ -201,6 +211,7 @@ extension NCPlayer: VLCMediaPlayerDelegate {
                 self.player.position = 0
                 self.playerToolBar?.setBarPlayer(position: 0)
                 self.viewerMediaPage?.changeScreenMode(mode: .normal)
+                NCUtilityFileSystem.shared.deleteFile(filePath: fileNameSnapshotLocalPath)
             }
             print("Played mode: ENDED")
             break