Ich versuche schon den halben Tag verzweifelt die Meta-Daten einer gerade spielenden/gestarteten mp3-Datei von Phonon zu bekommen, leider bekomme ich aber nur leere Strings.
Ich habe mich beim holen der Meta-Daten (vor allem das verarbeiten der QStringList) an diesem Beispiel orientiert: http://mcs.une.edu.au/doc/PyQt4-devel-4 ... cplayer.py
Hat jemand eine Idee warum ich nur leere Strings bekomme? Die slotMetaDataChanged-Methode wird aufgerufen, und die mp3-Datei enthält natürlich die abgefragten Meta-Daten

Code: Alles auswählen
import os
import sys
from PyQt4.phonon import Phonon
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class Player(object):
def __init__(self):
self.MediaObject = Phonon.MediaObject()
self.AudioOutput = Phonon.AudioOutput(Phonon.MusicCategory)
Phonon.createPath(self.MediaObject, self.AudioOutput)
QObject.connect(self.MediaObject, SIGNAL("finished()"), self.slotFinished)
QObject.connect(self.MediaObject, SIGNAL("metaDataChanged()"), self.slotMetaDataChanged)
def Play(self, source):
if not source : return
MediaSource = Phonon.MediaSource(source)
self.MediaObject.setCurrentSource(MediaSource)
self.MediaObject.play()
def slotMetaDataChanged(self):
metaData = self.MediaObject.metaData()
title = metaData.get('TITLE', [''])[0]
artist = metaData.get('ARTIST', [''])[0]
album = metaData.get('ALBUM', [''])[0]
desc = metaData.get('DESCRIPTION', [''])[0]
print title
print artist
print album
print desc
def slotFinished(self):
sys.exit()
if __name__ == '__main__':
app = QApplication([])
app.setApplicationName('player-test')
p1 = Player()
p1.Play(os.path.join(os.path.dirname(__file__), 'test_short.mp3'))
app.exec_()