我面临着完全相同的问题。可以在一个窗口中嵌入多个场景,类似于使用 clutter-gst 框架的单个场景示例:
https://github.com/ruby-gnome2/ruby-gnome2/issues/225
但是,我已经尝试过了,但是在创建多个杂乱场景时:
GtkWidget *clutter0 = gtk_clutter_embed_new();
GtkWidget *clutter1 = gtk_clutter_embed_new();
并将它们包含在 GTK 窗口中:
GtkWidget *hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(hbox), clutter0, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(hbox), clutter1, TRUE, TRUE, 0);
tk_container_add(GTK_CONTAINER(window), vbox);
为了更好的可读性,我没有包含流代码,但这足以产生错误
对于我无法解决的第二个场景,它会产生此错误:
(gstreamergtkclutterplayer:11614): Clutter-CRITICAL **: Unable to retrieve the geometry of the foreign window: XGetGeometry() failed (status code: 1)
我想我读到可以只打开某个接收器的一个实例,例如用于一个视频流的 gleglessink 并且你不能再使用这个接收器,你必须使用例如 ximagesink,但根据我的经验,这不适用于所有接收器,一些接收器可以为许多流实例化,但是我想用 cluttersink 来实现这一点,因为它可以为您提供硬件加速。