2011-07-10 6 views
5

Próbuję zbudować odtwarzacz mp3 dla mojej witryny przy użyciu JavaScript (i dowolnych wtyczek/frameworków (jQuery)/bibliotek, które są istotne) & html5. Zbudowałem więc odtwarzacz (dokładniej zaimplementowałem jPlayer), a teraz chcę zrobić wizualizator.Wizualizacja MP3 - PHP

Ok może to nie jest wizualizer (wszystkie nazwy sposobów wizualizacji dźwięku zawsze mylić mnie), myślę, że to, co chcę jest mniej więcej tak (aktualizacja: Właśnie się dowiedziałem, to nazywa się waveform):

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

Albo po prostu coś, co wykresy amplitudy (głośności) z MP3.

Powiedziano mi, że mam can't do that with javascript.

Czy ktoś wie, jak to zrobić za pomocą php?

Dokładniej, czy ktoś wie, jak wykreślić głośność/amplitudę pliku MP3 za pomocą PHP? Wiem, że gdy już dostanę głośność, mogę zrobić wykres za pomocą GD lub interfejsu API grafów Google.

Wszelkie interfejsy API, pomysły, frameworki będą mile widziane!

+0

Fantastyczne pytanie. Chciałbym mieć odpowiedź, ale nie mogę się doczekać, aby zobaczyć, co ludzie wymyślą ... – Cyclone

+0

O ile mi wiadomo, nie ma modułów PHP do dekodowania plików MP3. Jeśli chcesz sam utworzyć parser MP3, nic nie powstrzyma cię od czytania plików binarnych w JavaScript. – zneak

+0

@zneak musi być narzędzie Apache'a, które mogę wywołać za pomocą powłoki exec, aby przynajmniej wydrukować niektóre (użyteczne) dane do pliku tekstowego ... – Tomas

Odpowiedz

2

Czy używasz PHP do wywoływania narzędzi wiersza poleceń w systemie? Jeśli nie, to proponuję użyć mpg123 do tymczasowego przekształcenia pliku mp3 na .wav, a następnie do narzędzia o nazwie wav2png.py w celu wygenerowania kształtu fali jako obrazu .png.

To będzie powolne, spragnione pamięci i głodny dysku, ponieważ wymaga najpierw konwersji na .wav.

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

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

Zastrzeżenie: Nie mam doświadczenia z wave2png.py i jestem po prostu świadomi jego istnienia.

+0

Nic wbrew narzędziom wiersza poleceń (chociaż wolę php ...), staram się tylko zapobiegać nadużywaniu procesora i konwertowaniu mp3 na wav tylko dla png, cóż, nie jestem pewien, czy to jest tego warte. .. – Tomas

+2

@ Tomas: musisz tak czy inaczej. MP3 to skompresowane dane stratne. Nie jest to bezpośrednia reprezentacja kształtu fali, więc musisz ją rozpakować do surowego PCM (modulacja impulsu, podobnie jak kształt fali), aby móc uzyskać graficzne dane. –

+0

@Marc B, dziękuję, nie zdawałem sobie z tego sprawy. – Tomas