boyhagemann / waveform
此包最新版本(dev-master)没有可用的许可信息。
一个基于WAV文件生成波形图的PHP包
dev-master / 0.1.x-dev
2016-11-23 12:09 UTC
Requires
- php: >=5.3.3
- boyhagemann/wave: dev-master
This package is not auto-updated.
Last update: 2024-09-22 07:11:10 UTC
README
此包基于BoyHagemann\Wave类创建波形图。它将具有几个生成器来展示波形图。
安装
您可以使用以下行在composer.json文件中安装它
"minimum-stability": "dev", "require": { "boyhagemann/waveform": "dev-master" }
如何使用
生成波形图的最基本方法是这样的。默认宽度为500像素,高度为200像素。
<?php use BoyHagemann\Waveform\Waveform; echo Waveform::fromFilename('the/path/to/the/file.wav');
生成器
波形图可以通过多种方式展示
- HTML
- PNG
- SVG
它使用简单的接口,因此您可以构建自己的生成器。GeneratorInterface接口使用三个简单的方法
<?php namespace BoyHagemann\Waveform\Generator; use BoyHagemann\Waveform\Waveform; interface GeneratorInterface { public function setWaveform(Waveform $waveform); public function getWaveform(); public function generate(); }
示例
如果您想亲自测试,请尝试以下代码。
生成PNG图像
<?php use BoyHagemann\Waveform\Waveform; use BoyHagemann\Waveform\Generator; $filename = 'the/path/to/your/file.wav'; $waveform = Waveform::fromFilename($filename); $waveform->setGenerator(new Generator\Png) ->setWidth(960) ->setHeight(400); // Will display the image, including setting the read image/png header echo $waveform->generate();
生成基于HTML/CSS的波形图
<?php use BoyHagemann\Waveform\Waveform; $filename = 'the/path/to/your/file.wav'; $waveform = Waveform::fromFilename($filename); $waveform->setGenerator(new Generator\Html) ->setWidth(960) ->setHeight(400); $waveformHtml = $waveform->generate(); ?> <html> <head> <style> #waveform { float: left; position: relative; height: 400px; width: 960px; } span { position: absolute; display: block; width: 1px; background: #ddd; float: left; bottom: 0; } </style> </head> <body> <div id="waveform"> <?php echo $waveformHtml ?> </div> </body> </html>
生成基于SVG的波形图
<?php use BoyHagemann\Waveform\Waveform; $filename = 'the/path/to/your/file.wav'; $waveform = Waveform::fromFilename($filename); $waveform->setGenerator(new Generator\Svg) $waveformSvg = $waveform->generate(); \\do something, e.g. save it to a file file_put_contents ('the/path/to/result/file.svg', $waveformSvg);
最大化
默认情况下,波形振幅数据将最大化以匹配您为波形设置的高度。这意味着如果您设置高度为200,则波形图将最大化到200像素。无论整体音量如何,结果都是一个看起来很好的波形图。不想使用这个实用的功能?您可以通过一行简单的代码更改行为
$waveform->setMaximized(false); // defaults to true
获取波形元数据
您有权访问所有波形元数据。您唯一需要做的是检索原始Wave对象并获取所需信息。更多详细信息请参阅BoyHagemann\Wave文档。
$wave = $waveform->getWave(); $metadata = $wave->getMetadata(); $metadata->getSampleRate(); $metadata->getBitsPerSample();
待办事项
- 添加PNG生成器
- 添加SVG生成器
- 允许不同的样本位(8, 16, 24, 32)