【问题标题】:PyQt4 - can't get video to run with QMovie or PhononPyQt4 - 无法使用 QMovie 或 Phonon 运行视频
【发布时间】:2018-04-04 22:04:06
【问题描述】:

我无法让任何视频播放器与我的 PyQt4 设置一起使用(已尝试过 phonon 和 QMovie)。下面的 QMovie 脚本来自一个示例,其中几个用户评论它是功能性的。对我来说,它会运行,但只会打开一个窗口(以Loading... 为中心),而该窗口从未真正播放过 .gif(我已经尝试了许多在线示例中的几个工作 .gif 文件,所以文件不是问题)。我也注释掉了运行三个调试步骤的结果。

接下来我能做什么?

import sys
import os
import sip
sip.setapi('QVariant', 2)
from PyQt4 import QtGui, QtCore

class BusyLabel(QtGui.QWidget):
    def __init__(self, gif, parent = None, text = None):
        QtGui.QWidget.__init__(self, parent)

        self.hlayout = QtGui.QHBoxLayout(self)
        self.hlayout.setSpacing(0)
        self.hlayout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(self.hlayout)

        # Movie
        self.movieLabel = QtGui.QLabel(self)
        self.movieLabel.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
        self.movieLabel.setAlignment(QtCore.Qt.AlignCenter)

        self.movie = QtGui.QMovie(gif, QtCore.QByteArray(), self)
        self.movie.setScaledSize(QtCore.QSize(20,20))
        self.movie.setCacheMode(QtGui.QMovie.CacheAll)
        self.movie.setSpeed(100)
        print self.movie.isValid() #output = False
        print self.movie.supportedFormats() #output = []

        self.movieLabel.setMovie(self.movie)
        self.hlayout.addWidget(self.movieLabel)

        # Label
        self.label = QtGui.QLabel(text)
        self.hlayout.addWidget(self.label)

        self.movie.start()

    def setText(self, text):
        self.label.setText(text)

    def start(self):
        self.show()
        self.movie.start()

    def stop(self):
        self.hide()
        self.movie.stop()

if __name__ == "__main__":
    gif = 'test1.gif'
    print os.path.exists(gif) #output = True
    app = QtGui.QApplication(sys.argv)
    player = BusyLabel(gif)
    player.setText('Loading...')
    player.start()
    player.show()
    sys.exit(app.exec_())

output: True False []

(对于那些对我的其他尝试感到好奇的人,运行流行的 Phonon 脚本会出现错误:phonon backend plugin could not be loaded...我会在这一点上采取任何措施)

【问题讨论】:

  • 你的操作系统是什么?
  • @eyllanesc 我在 macOS High Sierra 上运行,v10.13.3
  • @eyllanesc 根据我的设置有什么想法吗?
  • 我怀疑问题是您没有安装后端:doc.qt.io/archives/qt-4.8/phonon-overview.html#backends:Mac 上的 QuickTime
  • @eyllanesc 谢谢 - 我正在研究如何在 macOS 上完成这项工作,但对于这个主题,它是一个在线论坛的丛林,有很多失败的尝试。今天会继续,但现在甚至考虑从头开始创建我自己的视频播放器类。

标签: python-2.7 animation video pyqt4 phonon


【解决方案1】:

我在这里提供了我为回答这个(我的)问题而编写的完整、有效的代码。您只需要PyQt4Matplotlib,我希望这可以帮助其他面临类似麻烦的人:

https://github.com/evanseitz/PyQt4_VideoPlayer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多