Python ShoutPlayer ver 0.0.1 pre-alpha

W ramach poznawania nauki Pythona postanowiłem zrobić bajer zaczerpnięty z mojej pracy. Właściwie żadna rewelacja, ot zwykłe odtwarzanie strumienia audio (z tzw. Shoutcastów), które co 30 minut zmienia strumień odtwarzania.

Już wcześniej wspominałem o tym, że mam problemy z zaciągnięciem jakiejś fajnej biblioteki, która może bezproblemowo odtwarzać dźwięk. Męczyłem się chwilę z PyMedia, ale tak szczerze mówiąc to program był jedną wielką rosyjską ruletką. Albo nie chciał się połączyć, albo to losowanie feedów i późniejsze ich odpalanie totalnie nawalało. Zdarzało się też tak, że wylosowany feed odtwarzał się dopiero po kolejnym losowaniu.. Niestety błedu nie znalazłem, dlatego na chwilę obecną postanowiłem zrobić małą prowizorkę.

Obecna wersja ma zaimplementowaną klasę, która pobiera listę serwerów (póki co tylko pliki z rozszerzeniem “pls”, najlepiej dociągać z shoutcast.com), pobiera plik listy i kopiuje wszystkie adresy serwerów. Później następuje losowanie jednego adresu i przekazanie go jako parametru do programu “mpg123″. Niestety na chwilę obecną to jest jedyna implementacja dźwięku jaka dość bezboleśnie przeszła. Niestety kurs obsługi GStreamera w Pythonie spalił w przedbiegach – okazuje się, że wtyczka za bardzo nie rozpoznaje parametru “alsasink”. Trudno, później zagłębię się w tym.

Jak się łatwo domyśleć, będzie nam potrzebny program “mpg123″ i chyba tylko tyle. Nie jestem pewien co do rozszerzeń samego Pythona. Aplikacja odtwarzająca dźwięk jest pakowana w tło, a jej PID jest zapisywany do pliku. Gdy nastąpi czas zmiany URLa program zostaje zabity, a po wylosowaniu kolejnego feed’u ponownie odpalony. Póki co czas zmiany serwerów to 5 minut (można to zmienić w pliku play.py). Lista serwerów znajduje się w pliku “stations_list”. Przy okazji można zobaczyć jak mniej więcej to powinno wyglądać.

Jeżeli jesteś zainteresowany tym programem to możesz go pobrać stąd – http://www.box.net/shared/kt5mqst4ws

Bez bicia przyznam się, że całość pisałem tak właściwie na łysą pałę. Generalnie kurs Pythona przerobiłem jakiś rok temu, od tamtego czasu w ogóle nie ruszałem tego języka. Stąd też moja prośba – jeśli popełniłem jakieś rażące błędy to proszę dajcie znać. Przyda mi się też jakiś link do fajnego tutoriala o obsłudze dźwięku w pythonie (nie chcę całości uzależniać od mpg123).

Ps. radzę zmniejszyć głośność, bo może “huknąć”. Niestety póki co nie ma żadnej regulacji głośności. Chcę jedynie wiedzieć, czy ma sens dalsza próba rozwinięcia tego małego projektu.

4 Responses to “Python ShoutPlayer ver 0.0.1 pre-alpha”

  1. Dawid Kulik April 5, 2008 at 11:25 pm #

    Ja się tam nie znam, ale zobacz to
    http://pl.wikibooks.org/wiki/Zanurkuj_w_Pythonie

  2. radmen April 5, 2008 at 11:25 pm #

    Dzięki, chętnie sprawdzę

  3. D4rky April 5, 2008 at 11:25 pm #

    „Chcę jedynie wiedzieć, czy ma sens dalsza próba rozwinięcia tego małego projektu.”
    Zawsze jest. W celach naukowych chociazby :)

  4. radmen April 5, 2008 at 11:25 pm #

    D4: ano i tak, chociaż póki co do Pythona mnie nie ciągnie specjalnie :)