Динамическое изменение размера с помощью MPlayer и PyGTK

Я написал фрагмент кода на python и pygtk для встроенного mplayer в графический интерфейс. Я предполагаю, что использую GtkSocket и подчиненный режим mplayer с опцией -wid.

Но у меня есть проблема, когда размер моего окна GTK меньше моего потока, поток кажется обрезанным. И когда размер моего окна больше, чем мой поток, поток отображается в центре виджета, в который встроен MPlayer. (gtk.Frame, но я также пробовал с gtk.DrawingArea) Я хотел бы знать, как я могу динамически изменять размер моего потока в зависимости от размера окна. Я не хочу использовать Glade или любой другой конструктор графического интерфейса. Заранее спасибо за любую помощь, и, пожалуйста, извините мой плохой английский.


person alex    schedule 10.03.2010    source источник
comment
Публикация вашего кода определенно поможет. Пожалуйста, прекратите отвечать с ответами, ответы предназначены только для этого .. ответы на ваш вопрос. Прочтите наш FAQ.   -  person Tim Post♦    schedule 13.07.2011


Ответы (2)


Вам нужно сказать mplayer масштабировать видео в соответствии с размером окна. Это можно сделать либо в командной строке (-zoom), либо в конфигурационном файле (zoom = 1).

person tsahee    schedule 31.05.2010

Вы захотите подключиться к сигналу 'size-allocate' любого виджета, в который вы встроили MPlayer. Как только вы узнаете новый размер виджета, скажем, 200x300, отправьте команды

set_property width 300
set_property height 200

в MPlayer в ведомом режиме.

(См. http://www.mplayerhq.hu/DOCS/tech/slave.txt для списка команд ведомого режима.)

person ptomato    schedule 11.03.2010
comment
Привет, спасибо за ответ, но если с get_property все в порядке, set_property не существует, согласно вашей ссылке о подчиненном режиме mplayer. - person alex; 15.03.2010
comment
Привет, я нашел пример того, как кто-то сделал это, но я не понимаю, как! Вот его код: dinointeractive.com/?p=36 Я просто не понимаю чего мне не хватает! - person alex; 15.03.2010
comment
set_property находится примерно посередине страницы, между set_mouse_pos и speed_incr. Ctrl-F — ваш друг. - person ptomato; 15.03.2010
comment
Что тебе не понятно в коде? Не могли бы вы быть более конкретным? - person ptomato; 15.03.2010
comment
Для set_property: посмотрите таблицу в конце документа. Нет set_property для высоты и ширины. Только получить. Я не понимаю, как этот парень изменил размер потока, когда я изменяю размер окна! В частности, я ничего не делал с mplayer, поэтому я думаю, что он сделал это с помощью pyGTK, но я не могу найти, как он работал =( Спасибо за вашу помощь =) - person alex; 15.03.2010
comment
Я бы сказал, что ОН ничего особенного не делал с mplayer. Кроме того, я отправил ему электронное письмо... но, похоже, он не отвечает или не может мне ответить. Его блог не обновлялся с июля прошлого года, так что... - person alex; 15.03.2010