2010-03-10 88 views
0

我已经在python和pygtk中为gui中的embeded mplayer编写了一段代码。 我假设我用-wid选项使用GtkSocket和mplayer的从属模式。用MPlayer和PyGTK动态调整大小

但是我遇到了一个问题,当我的GTK窗口的大小小于我的流时,流看起来会被裁剪。当我的窗口大小比我的流大时,流出现在嵌入MPlayer的小部件内部。 (一个gtk.Frame,但我也尝试使用gtk.DrawingArea) 我想知道如何根据窗口大小动态调整流的大小。 我不想使用Glade或任何GUI构建器。 预先感谢您的帮助,请原谅我可怜的英语。

+0

发布您的代码将最有帮助。请停止回答答案,答案只是针对你的问题。请阅读[我们的常见问题](http://stackoverflow.com/faq)。 – 2011-07-13 07:57:01

回答

0

你想连接到你的嵌入式MPlayer的任何部件的'size-allocate'信号。一旦你知道widget的新的大小,说200x300,发送指令

set_property width 300 
set_property height 200 

成为MPlayer在从模式。

(见http://www.mplayerhq.hu/DOCS/tech/slave.txt,从属模式命令的列表。)

+0

你好,谢谢你的答案,但如果get_property是好的,set_property不存在,根据你有关mplayer从属模式的链接。 – alex 2010-03-15 09:10:10

+0

嗨, 我发现有人做了一些例子,但我不明白! 这里是他的代码:http://www.dinointeractive.com/?p=36 我只是不明白我错过了什么! – alex 2010-03-15 09:21:55

+0

set_property大约在页面的中间位置,位于set_mouse_pos和speed_incr之间。 Ctrl-F是你的朋友。 – ptomato 2010-03-15 10:53:18

1

你需要告诉mplayer的根据窗口大小进行缩放视频。这可以通过命令行(-zoom)或配置文件(zoom = 1)完成。