2011-07-10 28 views
5

我想为我的网站使用JavaScript(和任何相关的插件/框架(jQuery)/库)建立一个MP3播放器& html5。所以我建立了播放器(更准确地说,我实现了jPlayer),现在我想制作一个可视化器。可视化的MP3 - PHP

好吧,也许这不是一个可视化(所有的方式来可视化的声音一直困惑我的名字),我想我要的是这样的(更新:我刚刚发现了这个被称为waveform):

wavelenghth http://www.anthonymattox.com/wp-content/uploads/2009/04/processing_audio_waveform_spectrum_2.jpg

或者只是一些图表的MP3的振幅(响度)。

我被告知我can't do that with javascript

所以没有人知道如何使用PHP?

更准确地说,没有人知道如何绘制使用PHP的MP3的响度/幅度?我知道,一旦获得响度,我可以使用GD或Google图形图像API制作图形。

任何API的,想法,框架都将非常感谢!

+0

奇妙的问题。希望我有答案,但期待看到人们想出了什么... – Cyclone

+0

据我所知,没有用于解码MP3文件的PHP模块。但是,如果你愿意自己制作一个MP3解析器,没有什么能够阻止你阅读JavaScript中的二进制文件。 – zneak

+0

@zneak必须有一个Apache工具,我可以调用shell exec来至少打印一些(有用的)数据到一个文本文件... – Tomas

回答

2

您是否反对使用PHP调用系统上的命令行工具?如果不是,那么我建议使用mpg123将mp3暂时转换为.wav,然后使用名为wav2png.py的实用程序将波形生成为.png图像。

由于需要首先转换为.wav,这会变得缓慢,需要内存和磁盘空间。

exec("mpg123 -w outfile.wav infile.mp3"); 

// Not sure of the syntax for wav2png... 
exec("wav2png.py outfile.wav"); 

免责声明:我与wave2png.py没有经验,我只知道它的存在。

+0

没有反对命令行工具(虽然我更喜欢php ...),我只是试图防止滥用CPU和MP3转换为wav只是为了PNG,以及我不知道这是否值得。 .. – Tomas

+2

@Tomas:你不得不反正。 MP3是压缩有损数据。它不是波形的直接表示,因此您必须将其解压缩为原始PCM(脉冲编码调制,也就是波形)才能获得可绘制数据。 –

+0

@Marc B,谢谢我没有意识到这一点。 – Tomas