J'ai essayé toute la journée de trouver la bibliothèque Phonon de Qt avec Python. Mon but à long terme est de voir si je pourrais l'obtenir pour jouer un flux mms: //, mais puisque je ne trouve pas une implémentation de ceci faite n'importe où, je vais comprendre cette partie moi-même. (Je pensais que je l'avais mis dehors si quelqu'un en savait plus à ce sujet spécifiquement, sinon pas grand-chose.)Jouer du mp3 avec Python, PyQt et Phonon
De toute façon, je me suis dit que je travaillerais en arrière à partir d'un exemple de travail que j'ai trouvé en ligne. Cela lance un navigateur de fichiers et jouera le fichier mp3 spécifié. Je voulais effacer les choses du navigateur de fichiers et l'amener à l'essentiel de l'exécution du script et de le faire lire un fichier MP3 avec un chemin codé en dur.
Je suppose que mon problème est un malentendu 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 garde ma question un peu large parce que toute aide avec la compréhension de Phonon serait grandement appréciée.
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()