вывод видео потока mplayer`a на какой-нить widget

Вопросы программирования и использования MSEide + MSEgui.

Модератор: Модераторы

вывод видео потока mplayer`a на какой-нить widget

Сообщение minoshi » 30.09.2010 19:44:15

Еще раз доброго времени суток!

Вопрос назрел после того, как я познакомился с WlxMplayer от Duble Commander.

Код: Выделить всё
procedure TForm1.Button3Click(Sender: TObject);
{$IFDEF LCLQT}
begin
  xid:= QWidget_winId(QWidgetH(AWidget));
  hWidget:= AWidget;
end;
{$ELSE}
var
   widget,
   mySocket:PGtkWidget;   //the socket
   lst:PGlist;
begin
  lst:=gtk_container_children(GTK_CONTAINER(PGtkwidget(panel1.Handle)));
  if lst=nil then exit;
  widget := PGtkWidget(lst^.data);
  //gtk_vbox_new(FALSE,0);
   mySocket := gtk_socket_new();
  gtk_container_add (GTK_CONTAINER(widget), mySocket);

  gtk_widget_show(mySocket);
  gtk_widget_show(widget);

//*****
  //gtk_container_add (GTK_CONTAINER (PGtkWidget(Awidget)), widget);
  gtk_widget_realize(mySocket);
  //gtk_widget_hide(PGtkWidget(AWidget));
{$IFDEF LCLGTK}
  xid:=(PGdkWindowPrivate(widget^.window))^.xwindow;
{$ENDIF}
{$IFDEF LCLGTK2}
  xid:=GDK_WINDOW_XID(widget^.window);
{$ENDIF}
  hWidget:= THandle(widget);

  pr:=TProcess.Create(nil);
  pr.Options := Pr.Options + [{poWaitOnExit,}poNoConsole{,poUsePipes}]; //mplayer stops if poUsePipes used.
  pr.CommandLine:='mplayer' + ' ' + sg.cells[1,sg.row] +' -wid '+IntToStr(xid);
  pr.Execute;

end;


Логика кода понятна : ищется id виджета и затем этот id передается в качестве параметра в mplayer.

Но здесь GTK и QT. А как это сделать в MSE ?
Аватара пользователя
minoshi
постоялец
 
Сообщения: 279
Зарегистрирован: 17.05.2008 21:23:38

Re: вывод видео потока mplayer`a на какой-нить widget

Сообщение B4rr4cuda » 01.10.2010 19:39:21

Логика кода понятна : ищется id виджета и затем этот id передается в качестве параметра в mplayer.

Не совсем так. Ищется id виджета, для того, чтобы выдрать из него X-овый хэндл виджета.. и вот он уже передается mplayer-у.
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: вывод видео потока mplayer`a на какой-нить widget

Сообщение coyot.rush » 01.10.2010 21:55:14

Не совсем так. Ищется id виджета, для того, чтобы выдрать из него X-овый хэндл виджета.. и вот он уже передается mplayer-у

Как не прибегая к перебору окон определить хэндл виджета в MSE(Linux и Windows)?
Аватара пользователя
coyot.rush
постоялец
 
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Re: вывод видео потока mplayer`a на какой-нить widget

Сообщение B4rr4cuda » 01.10.2010 22:49:54

Как не прибегая к перебору окон определить хэндл виджета в MSE(Linux и Windows)?

Понятия не имею. Насколько я знаю, mse самостоятельно рисует контролы, так что возможно, что единственный иксовый хэндл, который можно определить - хэндл самого окна. Хотя могу и ошибаться, так как моё знакомство с mse на уровне "поставил, посмотрел, снес".
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: вывод видео потока mplayer`a на какой-нить widget

Сообщение debi12345 » 03.10.2010 18:15:00

Для этих целей (dedicated window handle) кажется используется TEventWidget.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: вывод видео потока mplayer`a на какой-нить widget

Сообщение minoshi » 03.10.2010 19:07:27

Добавлено спустя 14 минут 35 секунд:
B4rr4cuda писал(а):
Логика кода понятна : ищется id виджета и затем этот id передается в качестве параметра в mplayer.

Не совсем так. Ищется id виджета, для того, чтобы выдрать из него X-овый хэндл виджета.. и вот он уже передается mplayer-у.

Да-да, я понял именно так, просто немного неправильно выразился



B4rr4cuda писал(а):
Как не прибегая к перебору окон определить хэндл виджета в MSE(Linux и Windows)?

Понятия не имею. Насколько я знаю, mse самостоятельно рисует контролы, так что возможно, что единственный иксовый хэндл, который можно определить - хэндл самого окна. Хотя могу и ошибаться, так как моё знакомство с mse на уровне "поставил, посмотрел, снес".



мне кажется все гораздо сложнее : Тут нарыл в просторе интернета команду "xlsclients -l", которая выводит клиентов, зарегистрированных в Исках. Поначалу очень обрадовался, но команда программу скомпилированную в mse не видит, хотя скомпилированную в лазаре видит прекрасно. Стал копать дальше и оказалось, что lazarus-программа - есть потомок Иксов. а вот mse-программа - есть потомок процесса init!

До сегодняшнего дня я наивно полагал, что понимаю как работают Иксы в линуксе, но теперь мой мозг вскипел и испарился :-\

На приатаченном скрине программа htop. выделены - программа mylinks, написанная в лазаре и xelplayer, написанная в mse


p.s. вариант debi12345 попробую сегодня вечерком ...
Вложения
screen.png
Аватара пользователя
minoshi
постоялец
 
Сообщения: 279
Зарегистрирован: 17.05.2008 21:23:38

Re: вывод видео потока mplayer`a на какой-нить widget

Сообщение debi12345 » 03.10.2010 21:51:36

Мартин пишет, что нужно 1) использоватьTWindowWidget и 2) не стесняться ипользовать ньюс-конференцию на GMane.

Добавлено спустя 1 минуту 42 секунды:
И еще в MSE встроен крутой механизм репарентинга окон - через него сделан аналог выневого NotifyIcon.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: вывод видео потока mplayer`a на какой-нить widget

Сообщение minoshi » 04.10.2010 16:22:26

РАБОТАЕТ :) (дальше идет парад радостных нецензурных слов).

debi12345, спасибо!

Добавлено спустя 1 минуту 22 секунды:
debi12345 писал(а):2) не стесняться ипользовать ньюс-конференцию на GMane.


ага, если бы еще было время разбираться как к ним подключиться. :)
Аватара пользователя
minoshi
постоялец
 
Сообщения: 279
Зарегистрирован: 17.05.2008 21:23:38

Re: вывод видео потока mplayer`a на какой-нить widget

Сообщение debi12345 » 05.10.2010 16:52:35

Кстати, репарентинг в лине повзоляет например крутить микро-кино в трэй-значке - через компонент TTrayIcon :)
Или рисовать там через OpenGL.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: вывод видео потока mplayer`a на какой-нить widget

Сообщение minoshi » 15.11.2010 22:00:14

не плохо оно работает и выньдовс. правда проверял только в XP

Добавлено спустя 37 секунд:
о! сотое сообщение, с юбилеем значитцца :)
Аватара пользователя
minoshi
постоялец
 
Сообщения: 279
Зарегистрирован: 17.05.2008 21:23:38


Вернуться в MSEide + MSEgui

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru