Skip to content

Commit f27376e

Browse files
committed
support custom filename
1 parent 2279459 commit f27376e

File tree

2 files changed

+33
-7
lines changed

2 files changed

+33
-7
lines changed

src/Definitions/MediaConversionAudio.php

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717

1818
class MediaConversionAudio extends MediaConversionDefinition
1919
{
20+
/**
21+
* @param null|string|(Closure(Media $media, ?MediaConversion $parent):string) $fileName
22+
*/
2023
public function __construct(
2124
public string $name,
2225
public null|bool|Closure $when = null,
@@ -25,7 +28,7 @@ public function __construct(
2528
public bool $queued = true,
2629
public ?string $queue = null,
2730
public array $conversions = [],
28-
public ?string $fileName = null,
31+
public null|Closure|string $fileName = null,
2932
public FormatInterface $format = new Mp3,
3033
) {
3134

@@ -64,6 +67,17 @@ public function hasFileAudioStream(string $path): bool
6467
return (bool) $streams->audios()->count();
6568
}
6669

70+
public function getFileName(Media $media, ?MediaConversion $parent): string
71+
{
72+
if ($fileName = $this->fileName) {
73+
return is_string($fileName) ? $fileName : $fileName($media, $parent);
74+
}
75+
76+
$source = $parent ?? $media;
77+
78+
return "{$source->name}.mp3";
79+
}
80+
6781
public function handle(
6882
Media $media,
6983
?MediaConversion $parent,
@@ -78,13 +92,11 @@ public function handle(
7892
/**
7993
* Videos do not always have an audio stream
8094
*/
81-
if (! $this->hasFileAudioStream(
82-
$filesystem->path($file)
83-
)) {
95+
if (! $this->hasFileAudioStream($filesystem->path($file))) {
8496
return null;
8597
}
8698

87-
$fileName = $this->fileName ?? "{$media->name}.mp3";
99+
$fileName = $this->getFileName($media, $parent);
88100

89101
$ffmpeg = FFMpeg::fromFilesystem($filesystem)
90102
->open($file)

src/Definitions/MediaConversionPoster.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818

1919
class MediaConversionPoster extends MediaConversionDefinition
2020
{
21+
/**
22+
* @param null|string|(Closure(Media $media, ?MediaConversion $parent):string) $fileName
23+
*/
2124
public function __construct(
2225
public string $name,
2326
public null|bool|Closure $when = null,
@@ -26,7 +29,7 @@ public function __construct(
2629
public bool $queued = false,
2730
public ?string $queue = null,
2831
public array $conversions = [],
29-
public ?string $fileName = null,
32+
public null|Closure|string $fileName = null,
3033
public TimeCode|float $seconds = 0.0,
3134
public ?int $width = null,
3235
public ?int $height = null,
@@ -55,6 +58,17 @@ public function shouldExecute(Media $media, ?MediaConversion $parent): bool
5558
return ($parent ?? $media)->type === MediaType::Video;
5659
}
5760

61+
public function getFileName(Media $media, ?MediaConversion $parent): string
62+
{
63+
if ($fileName = $this->fileName) {
64+
return is_string($fileName) ? $fileName : $fileName($media, $parent);
65+
}
66+
67+
$source = $parent ?? $media;
68+
69+
return "{$source->name}.jpg";
70+
}
71+
5872
public function handle(
5973
Media $media,
6074
?MediaConversion $parent,
@@ -66,7 +80,7 @@ public function handle(
6680
return null;
6781
}
6882

69-
$fileName = $this->fileName ?? "{$media->name}.jpg";
83+
$fileName = $this->getFileName($media, $parent);
7084

7185
FFMpeg::fromFilesystem($filesystem)
7286
->open($file)

0 commit comments

Comments
 (0)