我正在尝试使用 Linphone C API
将视频嵌入到桌面应用程序中。
默认情况下,如果使用 tutorial 中的样本通话期间视频窗口出现在单独的窗口中。
您能告诉我如何将此视频插入我的桌面应用程序吗?
我在 Linphone C API reference 中发现的所有内容似乎都有帮助,功能:
linphone_core_set_native_video_window_id
描述:
Set the native video window id where the video is to be displayed.
For MacOS, Linux, Windows: if not set or zero the core will create
its own window, unless the special id -1 is given.
有帮助吗?如何使用?
最佳答案
以下是 linphone SDK 获取窗口句柄的函数:
void *get_native_handle(GdkWindow *gdkw){
#ifdef GDK_WINDOWING_X11
return (void *)GDK_WINDOW_XID(gdkw);
#elif defined(WIN32)
return (void *)GDK_WINDOW_HWND(gdkw);
#elif defined(__APPLE__)
return (void *)gdk_quartz_window_get_nsview(gdkw);
#endif
g_warning("No way to get the native handle from gdk window");
return 0;
}
这里有几行代码:
GtkWidget *video_window, *window;
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
video_window = gtk_drawing_area_new();
unsigned long *videoID;
videoID = malloc(sizeof(unsigned long));
*videoID = get_native_handle(gtk_widget_get_window(video_window));
linphone_core_set_native_video_window_id(lc, *videoID);
为我工作!
关于c - 在应用程序中嵌入视频(Linphone C API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33799053/