2009-07-04 21 views
7

का उपयोग कर एमपी 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() 

उत्तर

2

फ़ोनॉन, मीडिया प्रारूपों के लिए प्रणाली की अपनी समर्थन का उपयोग कर, तो यह हो सकता है कि आपके सिस्टम एमपी 3 फ़ाइलें खेलने के लिए पुस्तकालयों प्रदान नहीं करता है विभिन्न प्लेटफार्मों पर विभिन्न ऑडियो फ़ाइल स्वरूपों का समर्थन। निश्चित रूप से, एमपी 3 कुछ लिनक्स वितरण पर बॉक्स से बाहर समर्थित नहीं है। आप लिनक्स का उपयोग कर रहे हैं, तो कृपया एक नज़र निम्न पृष्ठ पर जानकारी के लिए एमपी 3 समर्थन सक्षम करने के बारे ले:

http://doc.qt.io/qt-4.8/phonon-overview.html#linux

एक और तरीका है फ़ोनॉन के मीडिया स्वरूपों के साथ समस्याओं का निदान करने क्यूटी के साथ प्रदान की क्षमताओं उदाहरण चलाने के लिए है:

http://doc.qt.io/qt-4.8///qt-phonon-capabilities-example.html

यह आपको बताना चाहिए जो मीडिया प्रारूपों के लिए अपने सिस्टम द्वारा समर्थित हैं।

1

delayedInit विधि में; फ़ोनॉन ऑडियो या वीडियो outputting नहीं है, लेकिन किसी भी त्रुटि फेंक नहीं

def delayedInit(self): 
    if not self.m_media: 
     self.m_media = Phonon.createPlayer(Phonon.MusicCategory) 
0

: निम्नलिखित की तरह MediaObject पैदा करते हैं। तुम बस जब इसकी वहाँ नहीं, कोई त्रुटि है, लेकिन कोई कार्यक्षमता या तो sudo apt-get install phonon-backend-gstreamer करना पड़ सकता है और यह भी हो सकता है sudo apt-get install libphonon-dev

फ़ोनॉन चुपचाप gstreamer या वीएलसी के बैकएंड का उपयोग करता है, तो। उन आदेशों को चलाने के बाद मैं अपने रास्पबेरी पीआई

पर फोनोन से ध्वनि सुनने में सक्षम था उम्मीद है कि यह भविष्य में किसी की मदद करेगा।

संबंधित मुद्दे