1
私はMplayer
ビデオをGtkDrawingArea
に再生する必要があるGtk2アプリケーションを作成しています。私が知ることから、GtkDrawingArea
のXIDを見つけてこれをMplayerのパラメータとして渡すことができれば可能です。しかし、私は以下のコードスニペットを使用しています。私は、アプリケーションを実行するとGtk2のXIDを取得する方法Mplayerを埋め込むためのGtkDrawingArea
long videoID;
GtkWidget *videoWindow = NULL;
/* need be done only once on Namb2Client startup */
InitEGM(&egm);
/* Init GTK+ */
gtk_init(&argc, &argv);
/* Create new GtkBuilder object */
builder = gtk_builder_new();
/* Load UI from file. If error occurs, report it and quit application. */
if(!gtk_builder_add_from_file(builder, "layout.xml", &error))
{
g_warning("%s", error->message);
g_free(error);
return(1);
}
/* Get main window pointer from UI */
window = GTK_WIDGET(gtk_builder_get_object(builder, "window1"));
gtk_window_position(GTK_WINDOW(window), (GtkWindowPosition)GTK_WIN_POS_CENTER);
MainWnd = GTK_WIDGET(gtk_builder_get_object(builder, "MainWnd"));
// Setup area for Mplayer video
videoWindow = gtk_drawing_area_new();
gtk_widget_set_size_request (videoWindow, 640, 180);
gtk_fixed_put((GtkFixed *)MainWnd, videoWindow, 414, 24);
gtk_widget_show(videoWindow);
videoID = gdk_x11_drawable_get_xid(videoWindow);
g_printf("XID = %ld\n", videoID);
私は次のエラーを取得する:
(egm:3872): Gdk-WARNING **: gdkdrawable-x11.c:952 drawable is not a pixmap or window
XID = 0
GtkDrawingArea
のXIDを得るための適切な方法は何ですか?どんな助けでも大歓迎です。
回答ありがとうございます。キメラ。助けて頂きました。 Windowsの場合、 'GDK_WINDOW_HWND(GTK_WIDGET(video_window) - >ウィンドウ)'が働いていました。 – fapw
@fapwようこそ。私は他人に助けとなるものを提供することができてうれしいです。 – Chimera
こんにちは@キメラ。あなたがgtk_drawing_areaでビデオを見せてくれたら、私に教えてください。私はそれに困難があるので、頼んでいる。ありがとう。 – fapw