@@ -20,6 +20,7 @@ class MediaConversionPoster extends MediaConversionDefinition
20
20
{
21
21
/**
22
22
* @param null|string|(Closure(Media $media, ?MediaConversion $parent):string) $fileName
23
+ * @param TimeCode|float|(Closure(Media $media, ?MediaConversion $parent):TimeCode) $seconds
23
24
*/
24
25
public function __construct (
25
26
public string $ name ,
@@ -30,7 +31,7 @@ public function __construct(
30
31
public ?string $ queue = null ,
31
32
public array $ conversions = [],
32
33
public null |Closure |string $ fileName = null ,
33
- public TimeCode |float $ seconds = 0.0 ,
34
+ public Closure | TimeCode |float $ seconds = 0.0 ,
34
35
public ?int $ width = null ,
35
36
public ?int $ height = null ,
36
37
public Fit $ fit = Fit::Contain,
@@ -69,6 +70,21 @@ public function getFileName(Media $media, ?MediaConversion $parent): string
69
70
return "{$ source ->name }.jpg " ;
70
71
}
71
72
73
+ public function getTimeCode (Media $ media , ?MediaConversion $ parent ): TimeCode
74
+ {
75
+ $ seconds = $ this ->seconds ;
76
+
77
+ if (is_float ($ seconds )) {
78
+ return TimeCode::fromSeconds ($ seconds );
79
+ }
80
+
81
+ if ($ seconds instanceof TimeCode) {
82
+ return $ seconds ;
83
+ }
84
+
85
+ return $ seconds ($ media , $ parent );
86
+ }
87
+
72
88
public function handle (
73
89
Media $ media ,
74
90
?MediaConversion $ parent ,
@@ -84,11 +100,7 @@ public function handle(
84
100
85
101
FFMpeg::fromFilesystem ($ filesystem )
86
102
->open ($ file )
87
- ->getFrameFromTimecode (
88
- is_float ($ this ->seconds )
89
- ? TimeCode::fromSeconds ($ this ->seconds )
90
- : $ this ->seconds
91
- )
103
+ ->getFrameFromTimecode ($ this ->getTimeCode ($ media , $ parent ))
92
104
->export ()
93
105
->save ($ fileName );
94
106
0 commit comments