5
5
// Created by Donquijote on 02/04/2023.
6
6
//
7
7
8
- import TLPhotoPicker
9
- import Photos
10
8
import Foundation
9
+ import Photos
10
+ import TLPhotoPicker
11
11
12
12
public struct MediaResponse {
13
-
14
13
public enum MediaType : String {
15
14
case image, video
16
15
}
17
16
18
- public var data : NSMutableDictionary ? = nil
19
-
17
+ public var data : NSMutableDictionary ?
20
18
21
19
init ( filePath: String ? , mime: String ? , withTLAsset TLAsset: TLPHAsset , isExportThumbnail: Bool = false ) {
22
-
23
20
let asset = TLAsset . phAsset
24
21
25
- if ( asset != nil ) {
22
+ if asset != nil {
26
23
var media = [
27
24
" path " : filePath! as String ,
28
25
" localIdentifier " : asset? . localIdentifier ?? " " as String ,
29
- " fileName " : TLAsset . originalFileName!,
30
- " width " : Int ( asset? . pixelWidth ?? 0 ) as NSNumber ,
31
- " height " : Int ( asset? . pixelHeight ?? 0 ) as NSNumber ,
26
+ " fileName " : TLAsset . originalFileName!,
27
+ " width " : Int ( asset? . pixelWidth ?? 0 ) as NSNumber ,
28
+ " height " : Int ( asset? . pixelHeight ?? 0 ) as NSNumber ,
32
29
" mime " : mime!,
33
30
" creationDate " : asset? . creationDate ?? " " ,
34
31
" type " : asset? . mediaType == . video ? " video " : " image " ,
35
- ] as [ String : Any ]
32
+ ] as [ String : Any ]
36
33
37
34
// check video type
38
- if ( asset? . mediaType == . video) {
39
- //get video's thumbnail
40
- if ( isExportThumbnail) {
35
+ if asset? . mediaType == . video {
36
+ // get video's thumbnail
37
+ if isExportThumbnail {
41
38
media [ " thumbnail " ] = getThumbnail ( from: filePath!, in: 0.1 )
42
39
}
43
- //get video size
40
+ // get video size
44
41
TLAsset . videoSize { size in
45
42
media [ " size " ] = size
46
43
}
47
44
media [ " duration " ] = asset? . duration
48
- } else {
45
+ } else {
49
46
TLAsset . photoSize { photoSize in
50
47
media [ " size " ] = photoSize
51
48
}
@@ -54,10 +51,8 @@ public struct MediaResponse {
54
51
self . data = NSMutableDictionary ( dictionary: media)
55
52
}
56
53
}
57
-
58
54
}
59
55
60
-
61
56
func getImagePathFromUIImage( uiImage: UIImage , prefix: String ? = " thumb " ) -> String {
62
57
// save to temp directory
63
58
let tempDirectory = FileManager . default. urls (
@@ -70,11 +65,9 @@ func getImagePathFromUIImage(uiImage: UIImage, prefix: String? = "thumb") -> Str
70
65
71
66
fileManager. createFile ( atPath: fullPath, contents: data, attributes: nil )
72
67
73
- return fullPath;
74
-
68
+ return fullPath
75
69
}
76
70
77
-
78
71
func getThumbnail( from moviePath: String , in seconds: Double ) -> String ? {
79
72
let filepath = moviePath. replacingOccurrences (
80
73
of: " file:// " ,
@@ -85,22 +78,20 @@ func getThumbnail(from moviePath: String, in seconds: Double) -> String? {
85
78
let generator = AVAssetImageGenerator ( asset: asset)
86
79
generator. appliesPreferredTrackTransform = true
87
80
88
- var _: Error ? = nil
81
+ var _: Error ?
89
82
let time = CMTimeMake ( value: 1 , timescale: 60 )
90
83
91
- var imgRef : CGImage ? = nil
84
+ var imgRef : CGImage ?
92
85
do {
93
86
imgRef = try generator. copyCGImage ( at: time, actualTime: nil )
94
- } catch _ {
95
- }
96
- var thumbnail : UIImage ? = nil
87
+ } catch _ { }
88
+ var thumbnail : UIImage ?
97
89
98
90
if let imgRef = imgRef {
99
91
thumbnail = UIImage ( cgImage: imgRef)
100
92
}
101
93
102
94
let fullPath = thumbnail != nil ? getImagePathFromUIImage ( uiImage: thumbnail!, prefix: " thumb " ) : nil
103
95
104
- return fullPath;
105
-
96
+ return fullPath
106
97
}
0 commit comments