2009-04-23 4 views
5

Per prima cosa, sono un principiante Python, con un tipico background C++/Java per cose orientate agli oggetti.Riproduzione e controllo di file mp3 in Python?

Ero convinto di provare Python per questa attività attuale su cui sto lavorando, e finora mi piace. Un problema che sto avendo è trovare un buon modulo mp3.

Ho provato TkSnack, che ha installato e funzionava correttamente senza errori (purché il mio dispositivo audio non fosse occupato) ma non potrebbe mai produrre effettivamente un suono, non ha fatto niente ... Sono andato online per chiedere aiuto e rimase deluso dalla quantità di documentazione.

Quindi ho deciso di cambiare. Ho provato PyMad perché è anche negli archivi standard di Ubuntu. C'era ancora meno documentazione su questo, ma potevo far suonare un suono. L'unico problema è che richiede un ciclo per scrivere/riprodurre costantemente il buffer audio. Ciò rende particolarmente difficile gestire il controllo della riproduzione (secondo me) perché dovrei eseguirlo in un thread o processo separato e in qualche modo controllare la posizione di ricerca per la pausa e così via. Questo è un po 'troppo basso per il motivo per cui sto usando Python. Mi è piaciuta la semplicità di TkSnack per i suoi comandi semplici come "mysound.play()" o "mysound.pause()" piuttosto che il controllo di un ciclo.

Ho anche guardato pyMedia, che sembra essere il più aggiornato con la documentazione, ma non riesco a farlo installare sulla mia macchina. Ottengo un errore "gcc exited with value 1" o qualcosa di simile quando si esegue il comando "python setup.py build".

Quindi sto cercando qualsiasi suggerimento o aiuto su uno di questi moduli, o uno completamente diverso, che è di alto livello e facile da usare per gli mp3 (e preferibilmente anche altri formati) Sto cercando di avere il controllo di riproduzione di base (pausa, interrompi, salta, cerca) e potrei anche fare lo streaming di file alla fine (se mai ci riuscirò).

EDIT: Mi piacciono i collegamenti Python per Gstreamer, ma si tratta di una soluzione multipiattaforma? Ho dimenticato di menzionarlo come requisito. Ma ho sempre associato GStreamer con Linux, funzionerebbe su altri sistemi operativi?

MODIFICA: Wikipedia dice yes.

risposta

2

Spiacente, non posso aiutarti con PyMad o pyMedia, ma ho altri suggerimenti.

esistenti lettori musicali scritti in Python:

Tutto l'uso di sopra del Python bindings per il quadro GStreamer multimediale. I documenti per le associazioni sono scarsi, ma controllare here, here, here ed esempi dalla distribuzione di origine here.

+0

Mi piace l'idea di comunicare con GStreamer, dal momento che la maggior parte dei programmi audio/video funzionano già in Linux. Ma sarebbe ancora applicabile se volessi renderlo multipiattaforma? – gnomed

+0

Due link sembrano non essere pacchetti Python ... – heather

0

Ho appena avuto a che fare con questo, e dalla mia ricerca penso che le tue migliori scommesse sono pyglet e pygame. Sono pacchetti di interfaccia con supporto a/v integrato.

+0

pyglet sembra promettente, sono un po 'troppo occupato per i prossimi due giorni per provare a implementarlo. Ma ti farò sapere se lo faccio. – gnomed