|
用了这么久mplayer,才发现它有个非常酷的功能,用参数-wid
mplayer手册上的描述是这样的:
- -wid <window ID> (also see -guiwid) (X11, OpenGL and DirectX only)
- This tells MPlayer to attach to an existing window. Useful to embed MPlayer in a browser (e.g. the plugger extension).
复制代码
这样我们就可以自己写mplayer的前端,而几乎不需要我们的图形库有任何专门的mplayer widget(不过需要我们的图形库支持某些X的酷特性)。当然这样我们可能还需要mplayer的另外一个酷酷的参数-slave。
这里我给出一个hello world性质的例程,用PyQt4实现自己的Mplayer前端。
[php]
#!/usr/bin/python
#Filename:<>
from PyQt4 import QtCore,QtGui
import sys
try:
import psyco
psyco.full()
except:
pass
class Main(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.frame = QtGui.QFrame(self)
self.container = QtGui.QX11EmbedContainer(self.frame)
################
# main routine #
################
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
main = Main()
main.show()
app.exec_()
[/php]
运行后,用xwininfo获取窗口的windows ID号,然后mplayer <file> -wid <wid>就可以看到激动人心的事情发生了!。
需要特别注意的是,debian sid自己的PyQt4的版本是4.0.1(好像),而这个版本有一个关键功能没有实现,所以目前只能自己打包编译PyQt4的4.1.1版本。
- 我自己打了一个:[url]http://oak.waven.com/~haha/pyqt-all_in_one/[/url]
复制代码
这个里面有三个包,都要装,一个是QT4本身,一个是PyQt4,sip是绑定qt4到python的。
不过我不太会搞deb包,所以qt4这个包很大(包含所有的文档/例子)。如果你嫌大,可以自己编译下。
参考:http://www.xm1math.net/qxmp/index.html QXMP
结论: Xwindow太酷了!
灌水: LinuX 太完美了! |
|