He intentado todo el día descubrir la biblioteca Phonon de Qt con Python.Reproduzca mp3 utilizando Python, PyQt y Phonon
Mi objetivo a largo plazo es ver si puedo hacer que reproduzca una secuencia de mms: //, pero como no puedo encontrar una implementación de esto en ningún lado, me haré una idea de esa parte. (Pensé en ponerlo ahí si alguien sabía más sobre esto específicamente, si no es nada del otro mundo.)
De todos modos, pensé que había que trabajar hacia atrás a partir de un ejemplo de trabajo he encontrado en Internet. Esto inicia un buscador de archivos y reproducirá el archivo mp3 especificado. Quería quitar las cosas del navegador de archivos y llevarlo a lo esencial de ejecutar el script y hacer que reproduzca un archivo Mp3 con una ruta de acceso codificada.
Supongo que mi problema es un malentendido de setCurrentSource() y especificando los tipos de datos. (ver: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/phonon-mediasource.html#fileName)
Estoy manteniendo mi pregunta como algo amplio porque CUALQUIER ayuda para entender a Phonon sería muy apreciada.
import sys
from PyQt4.QtGui import QApplication, QMainWindow, QDirModel, QColumnView
from PyQt4.QtGui import QFrame
from PyQt4.QtCore import SIGNAL
from PyQt4.phonon import Phonon
class MainWindow(QMainWindow):
m_model = QDirModel()
def __init__(self):
QMainWindow.__init__(self)
self.m_fileView = QColumnView(self)
self.m_media = None
self.setCentralWidget(self.m_fileView)
self.m_fileView.setModel(self.m_model)
self.m_fileView.setFrameStyle(QFrame.NoFrame)
self.connect(self.m_fileView,
SIGNAL("updatePreviewWidget(const QModelIndex &)"), self.play)
def play(self, index):
self.delayedInit()
self.m_media.setCurrentSource(
Phonon.MediaSource(self.m_model.filePath(index)))
self.m_media.play()
def delayedInit(self):
if not self.m_media:
self.m_media = Phonon.MediaObject(self)
audioOutput = Phonon.AudioOutput(Phonon.MusicCategory, self)
Phonon.createPath(self.m_media, audioOutput)
def main():
app = QApplication(sys.argv)
QApplication.setApplicationName("Phonon Tutorial 2 (Python)")
mw = MainWindow()
mw.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()