我一直在嘗試用Python來弄清楚Qt的Phonon庫。使用Python,PyQt和Phonon播放mp3
我的長期目標是要看到,如果我能得到它的發揮MMS://流,但因爲我無法找到的這個任何地方進行的實現,我將人物的那部分自己。 (想我會放在那裏,如果有人知道更多關於這個具體地講,如果不是沒什麼大不了的。)
不管怎樣,我想我會從一個工作的例子,我在網上找到向後工作。這將啓動文件瀏覽器並播放指定的mp3文件。我想刪除文件瀏覽器的東西,並把它放到執行腳本的要點,並讓它播放帶有硬編碼路徑的Mp3文件。
我假設我的問題是setCurrentSource的誤解()和指定的數據類型。 (參見:http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/phonon-mediasource.html#fileName)
我保持我的問題種類廣泛,因爲與理解聲子任何幫助,將不勝感激。
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()