synchro/laravel-medialibrary-audio

Spatie's Laravel Media Library 的音频文件缩略图生成器

v2.0.0 2024-04-09 13:43 UTC

This package is auto-updated.

Last update: 2024-09-09 14:36:14 UTC


README

此音频图像生成器为通过 Spatie's Media Library 上传的音频文件生成缩略图,就像它已经为图像、视频和 PDF 格式所做的那样。默认情况下,它们看起来像这样

Example waveform image

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 部分的生成器列表中,包括可选地设置默认 widthheightforegroundbackground 属性(默认值如上所示)

'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