2011-07-10 27 views
5

Estoy tratando de construir un reproductor de mp3 para mi sitio usando JavaScript (y cualquier plugins/frameworks (jQuery)/librerías que sean relevantes) & html5. Así que construí el reproductor (más exactamente, implementé jPlayer), y ahora quiero hacer un visualizador.Visualización de MP3 - PHP

Ok tal vez no es un visualizador (todos los nombres de las formas de visualizar sonido siempre me confunde), supongo que lo que quiero es algo como esto (Actualización: Me acabo de enterar de esto se llama un waveform):

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

O simplemente algo que representa gráficamente la amplitud (intensidad) de un MP3.

Me han dicho que can't do that with javascript.

¿Alguien sabe cómo hacerlo con php?

Más exactamente, ¿alguien sabe cómo graficar el volumen/amplitud de un MP3 usando PHP? Sé que una vez que obtengo el volumen, puedo hacer un gráfico usando GD o la API de gráficos Google image.

Cualquier API, ideas, marcos serán muy apreciados!

+0

Fantástica pregunta. Me gustaría tener la respuesta, pero estoy deseoso de ver lo que la gente piensa ... – Cyclone

+0

Por lo que yo sé, no hay módulos de PHP para decodificar archivos MP3. Sin embargo, si está dispuesto a hacer un analizador de MP3, nada le impide leer archivos binarios en JavaScript. – zneak

+0

@zneak tiene que haber una herramienta Apache a la que pueda llamar con el administrador de shell para, al menos, imprimir algunos datos (útiles) en un archivo de texto ... – Tomas

Respuesta

2

¿Es adverso al uso de PHP para llamar a las herramientas de línea de comandos en el sistema? De lo contrario, sugeriría usar mpg123 para convertir el mp3 temporalmente en .wav, y luego una utilidad llamada wav2png.py para generar la forma de onda como una imagen .png.

Esto va a ser lento, hambriento de memoria y disco, ya que requiere la conversión a .wav primero.

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

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

de responsabilidad: No tengo experiencia con wave2png.py, y soy más consciente de su existencia.

+0

Nada en contra de las herramientas de línea de comandos (aunque preferiría php ...), solo trato de evitar abusar de la CPU y convertir mp3 a wav solo para el png, así que no estoy seguro de que eso valga la pena. .. – Tomas

+2

@Tomas: deberías hacerlo de todos modos. MP3 es datos con pérdida comprimidos. No es una representación directa de una forma de onda, por lo que debe descomprimirla en PCM en bruto (modulación por pulsos codificados, también conocida como forma de onda) para poder obtener datos grafables. –

+0

@Marc B, gracias no lo sabía. – Tomas