0
我有覆盆子pi3。我想用phonon + qt + python显示任何类型的视频。我不想在QT中使用C++。我曾尝试使用以下代码,但它给出错误,如:没有名为phonon的模块。我已经使用sudo apt-get install phonon来安装声子,但它仍然会给出这样的错误。任何人都知道如何解决这个问题,或者有没有其他的方式来使用python + qt来显示视频,或者有没有其他的方法来安装声子?如何使用声音+ python + qt在树莓派中显示任何视频
from PyQt4 import QtGui, QtCore
import PyQt4.phonon
class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.media = phonon.MediaObject(self)
self.media.stateChanged.connect(self.handleStateChanged)
self.video = phonon.VideoWidget(self)
self.video.setMinimumSize(400, 400)
self.audio = phonon.AudioOutput(phonon.VideoCategory, self)
phonon.createPath(self.media, self.audio)
phonon.createPath(self.media, self.video)
self.button = QtGui.QPushButton('Choose File', self)
self.button.clicked.connect(self.handleButton)
self.list = QtGui.QListWidget(self)
self.list.addItems(phonon.BackendCapabilities.availableMimeTypes())
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.video, 1)
layout.addWidget(self.button)
layout.addWidget(self.list)
def handleButton(self):
if self.media.state() == phonon.PlayingState:
self.media.stop()
else:
path = QtGui.QFileDialog.getOpenFileName(self, self.button.text())
if path:
self.media.setCurrentSource(phonon.MediaSource(path))
self.media.play()
def handleStateChanged(self, newstate, oldstate):
if newstate == phonon.PlayingState:
self.button.setText('Stop')
elif (newstate != phonon.LoadingState and
newstate != phonon.BufferingState):
self.button.setText('Choose File')
if newstate == phonon.ErrorState:
source = self.media.currentSource().fileName()
print ('ERROR: could not play:', source.toLocal8Bit().data())
print (' %s' % self.media.errorString().toLocal8Bit().data())
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
app.setApplicationName('phonon Player')
window = Window()
window.show()
sys.exit(app.exec_())
你有没有工作的SWF文件?PLZ附加它。因为我尝试这个例子并运行它,但它显示空白的黑屏。所以我想检查是在我的SWF文件中的问题,或者我在这个脚本运行中遇到问题。 –