【发布时间】:2012-08-14 05:43:23
【问题描述】:
在PyQt4 中是否可以通过mpylayer 将视频嵌入QWidget(或它的子类)。如果是这样,您能否提供一个最小的工作示例。
【问题讨论】:
在PyQt4 中是否可以通过mpylayer 将视频嵌入QWidget(或它的子类)。如果是这样,您能否提供一个最小的工作示例。
【问题讨论】:
有关嵌入 MPlayer 的 Qt Widget 的完整示例,请尝试qmpwidget。
但这里有一个最小的 PyQt 演示可以帮助您入门:
import mpylayer
from PyQt4 import QtGui, QtCore
class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.container = QtGui.QWidget(self)
self.container.setStyleSheet('background: black')
self.button = QtGui.QPushButton('Open', self)
self.button.clicked.connect(self.handleButton)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.container)
layout.addWidget(self.button)
self.mplayer = mpylayer.MPlayerControl(
'mplayer', ['-wid', str(self.container.winId())])
def handleButton(self):
path = QtGui.QFileDialog.getOpenFileName()
if not path.isEmpty():
self.mplayer.loadfile(unicode(path))
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Window()
window.resize(640, 480)
window.show()
sys.exit(app.exec_())
(注意:此演示仅在 Linux 上测试过)
【讨论】:
mpylayer。无论如何,我已经相应地更新了我的演示脚本。
mpylayer可以吗?也许使用PyQt4.phonon?
mpylayer。
您必须获取小部件的句柄(id)→http://qt-project.org/doc/qt-4.8/qwidget.html#winId
并将其传递给 MPlayer 的-wid 选项。
我不能给你一个Qt的例子,只是因为我不知道Qt,但是我已经为wxPython写了一个MplayerCtrl:https://bitbucket.org/dav1d/mplayerctrl
相关代码:https://bitbucket.org/dav1d/mplayerctrl/src/c680a1d99ad2/MplayerCtrl.py#cl-873
【讨论】: