का उपयोग कर एमपी 3 चलाएं मैं पाइथन के साथ क्यूटी की फोनोन लाइब्रेरी को समझने के लिए पूरे दिन कोशिश कर रहा हूं।पायथन, पीईक्यूटी, और फोनन
मेरा दीर्घकालिक लक्ष्य यह देखने के लिए है कि क्या मैं इसे एमएमएस: // स्ट्रीम खेलने के लिए प्राप्त कर सकता हूं, लेकिन चूंकि मुझे इसे कहीं भी कार्यान्वित नहीं किया जा सकता है, इसलिए मैं खुद को उस हिस्से को समझूंगा। (अगर मैंने कोई बड़ा सौदा नहीं किया है, तो मुझे यह पता चल जाएगा कि अगर कोई बड़ा सौदा नहीं है।)
वैसे भी, मुझे लगा कि मैं ऑनलाइन काम करने वाले एक उदाहरण से पीछे काम करता हूं। यह एक फ़ाइल ब्राउज़र लॉन्च करता है और निर्दिष्ट एमपी 3 फ़ाइल चलाएगा। मैं फ़ाइल ब्राउज़र सामान को तोड़ना चाहता था और स्क्रिप्ट को निष्पादित करने के लिए इसे नीचे ले जाना चाहता था और इसे एक हार्डकोडेड पथ के साथ एक एमपी 3 फ़ाइल खेलना चाहता था।
मुझे लगता है कि मेरी समस्या 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()