Jouer des fichiers mp3 à l'aide de Python, PyQt, et Phonon

J'ai essayé toute la journée pour déterminer l'intervalle Qt de la bibliothèque Phonon avec Python.

Mon but à long terme est de voir si je pouvais obtenir de jouer un mms://stream, mais depuis je ne trouve pas la mise en œuvre de ce fait n'importe où, je vais figure cette partie de moi-même. (pensé que je l'avais mis là si quelqu'un en savait plus sur cela plus précisément, si ce n'est pas une grosse affaire.)

De toute façon, j'ai pensé à travailler à rebours à partir d'un exemple que j'ai trouvé en ligne. Cette lance un navigateur de fichier et lire le fichier mp3 spécifié. J'ai voulu dépouiller le navigateur de fichier, des trucs et de les réduire à l'essentiel de l'exécution du script, et de jouer un fichier Mp3 avec un chemin codé en dur.

Je suppose que mon problème est un manque de compréhension de setCurrentSource() et en spécifiant les types de données. (voir: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/phonon-mediasource.html#fileName)

Je vais garder ma question sorte de large, parce que TOUTE aide à la compréhension de Phonon serait grandement apprécié.

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()

OriginalL'auteur KeyboardInterrupt | 2009-07-04