2009-04-23 39 views
5

Po pierwsze, jestem początkującym Pythonem, z typowym tłem C++/Java dla obiektów zorientowanych obiektowo.Odtwarzanie i kontrolowanie plików MP3 w Pythonie?

Byłem przekonany, aby wypróbować Python w tym bieżącym przedsięwzięciu, nad którym pracuję i jak dotąd lubię. Jedną z kwestii, którą mam, jest znalezienie dobrego modułu mp3.

Próbowałem TkSnack, który instalował i działał dobrze bez błędów (o ile moje urządzenie audio nie było zajęte), ale nigdy nie mógł wydać dźwięku, po prostu nic nie zrobił ... Poszedłem online po pomoc , i był rozczarowany ilością dokumentacji.

Więc postanowiłem zmienić. Próbowałem PyMad, ponieważ jest on również w standardowych repozytoriach dla Ubuntu. Było na to jeszcze mniej dokumentacji, ale mogłem sprawić, by brzmiał jak dźwięk. Jedynym problemem jest to, że wymaga stałej pętli do zapisu/odtwarzania bufora audio. Sprawia to, że jest szczególnie włochaty w obsłudze kontroli odtwarzania (moim zdaniem), ponieważ musiałbym uruchomić to w oddzielnym wątku lub procesie i jakoś kontrolować pozycję szukania dla pauzy i takie. Jest to zbyt niski poziom, ponieważ używam Pythona. Podobała mi się prostota TkSnacka z powodu łatwych poleceń takich jak "mysound.play()" lub "mysound.pause()" zamiast kontrolowania pętli.

Spojrzałem również na pyMedia, która wygląda na najbardziej aktualną z dokumentacją, ale nie mogę go zainstalować na moim komputerze. Otrzymuję komunikat "gcc exited with value 1" lub coś podobnego podczas uruchamiania polecenia "python setup.py build".

Poszukuję więc sugestii lub pomocy na temat jednego z tych modułów lub zupełnie innego, wysokiego poziomu i łatwego w użyciu dla plików mp3 (a najlepiej także innych formatów) Próbuję uzyskać podstawową kontrolę odtwarzania (pauza, stop, przeskakiwanie, szukanie) i mogę też przesyłać strumieniowo pliki (jeśli kiedykolwiek tam dotrę).

EDIT: Lubię wiązania Pythona dla Gstreamer, ale czy jest to rozwiązanie wieloplatformowe? Zapomniałem wspomnieć o tym jako wymaganiu. Ale zawsze kojarzyłem GStreamera z Linuksem, czy działałoby to na innych systemach operacyjnych?

EDIT: Wikipedia mówi yes.

Odpowiedz

2

Niestety, nie mogę Ci pomóc z PyMad lub pyMedia, ale mam inne sugestie.

Istniejące odtwarzacze muzyczne napisane w Pythonie:

Wszystkie powyższe użytkowania Python bindings w ramach GStreamer multimedialnej. Dokumenty dotyczące powiązań są rzadkie, ale sprawdź: here, here, here oraz przykłady z dystrybucji źródłowej here.

+0

Podoba mi się pomysł komunikacji z GStreamer, ponieważ już teraz działa większość programów audio/wideo w Linuksie. Ale czy nadal miałoby zastosowanie, jeśli chciałem zrobić to na wielu platformach? – gnomed

+0

Dwa z linków wydają się nie być pakietami Pythona ... – heather

0

Po prostu musiałem sobie z tym poradzić, a z moich badań wynika, że ​​najlepsze są pyglet i pygame. Są to pakiety interfejsów z wbudowaną obsługą a/v.

+0

pyglet wygląda obiecująco, jestem trochę zbyt zajęty przez kilka następnych dni, aby spróbować z nim wdrożyć. Ale dam ci znać, jeśli to zrobię. – gnomed

Powiązane problemy