synchro / laravel-medialibrary-audio
Spatie's Laravel Media Library 的音频文件缩略图生成器
Requires
- php: ^8.0
- illuminate/support: ^9.0 || ^10.0 || ^11.0
- spatie/laravel-medialibrary: ^9.1.0 || ^10.0 || ^11.0
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^0.7.2
- laravel/framework: ^9.0 || ^10.0 || ^11.0
- orchestra/testbench: ^7.0 || ^8.0 || ^9.0
- php-ffmpeg/php-ffmpeg: ^1.2.0
- phpcompatibility/php-compatibility: ^9.3.5
- phpstan/phpstan: ^1.10.66
- phpunit/phpunit: ^9.6.19 || ^10.5 || ^11.1
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: ^3.9.1
README
此音频图像生成器为通过 Spatie's Media Library 上传的音频文件生成缩略图,就像它已经为图像、视频和 PDF 格式所做的那样。默认情况下,它们看起来像这样
Spatie 的文档中详细介绍了 插件如何与 Media Library 集成。使用 ffmpeg 的 waveform
转换器生成整个音频文件的单一波形缩略图。它使用与 Media Library 已支持的视频格式相同的 PHP FFMpeg 包,因此没有额外的依赖。
安装和配置
使用 composer 安装
composer require synchro/laravel-medialibrary-audio
在您的 Laravel 项目中安装 Spatie 的 Media Library(版本 9.1.0 或更高版本)将在 config/media-library.php
中生成一个配置文件。将音频波形生成器添加到 image_generators
部分的生成器列表中,包括可选地设置默认 width
、height
、foreground
和 background
属性(默认值如上所示)
'image_generators' => [ ..., Synchro\MediaLibrary\Conversions\ImageGenerators\AudioWaveform::class => [ 'width' => 2048, 'height' => 2048, 'foreground' => '#113554', 'background' => '#CBE2F4', ] ],
这些参数是可选的 - 如果您对默认值满意,可以省略它们。
缩略图颜色
波形在前景颜色上绘制,背景颜色之上。两者都应使用标准 HTML 6 位十六进制值(带前缀 #
)通过媒体库配置传递,如上所示。
缩略图尺寸
可以通过媒体库配置设置缩略图的基本尺寸,如上所示。默认值为 2048 x 2048 像素,中性值选择,因为音频文件没有固有的大小或宽高比。这相当大,但由于图像非常简单,它们在 PNG 格式中将非常有效地压缩。此大小不会直接影响发送到客户端的缩略图,因为媒体库本身会生成缩放版本以匹配客户端请求,但是它直接影响缩略图的宽高比,因此如果您想要 16:9 的比例,将高度更改为 1152
,或者更改为 1536
以获得 4:3。
支持的格式
aiff
flac
m4a
mp3
mp4
ogg
wav
wma
运行测试
如果您的本地 ffmpeg 安装在不同的路径,您可以使用环境变量来定义自己的路径
FFMPEG_PATH=/usr/local/bin/ffmpeg FFPROBE_PATH=/usr/local/bin/ffprobe vendor/bin/phpunit
或在最近的 macOS 上使用 homebrew
FFMPEG_PATH=/opt/homebrew/bin/ffmpeg FFPROBE_PATH=/opt/homebrew/bin/ffprobe vendor/bin/phpunit