2011-07-10 35 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