c - 在应用程序中嵌入视频(Linphone C API)

标签 c api video linphone

我正在尝试使用 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/

相关文章:

c - 如何将 char * argv[] 放入全局变量

php - Symfony2 RESTful API + AngularJS

api - 什么是好的面向压缩的应用程序编程接口(interface) (API)?

angular - 从源访问 XMLHttpRequest 已被 CORS 策略 : No 'Access-Control-Allow-Origin' header is present on the requested resource 阻止

linux - gnome登录后播放视频文件

html - 在浏览器调整大小时保持图像位于视频之上

html - 如何在 Bootstrap 4 视频的最右上角放置下拉菜单?

c - SetWindowLongPtr 似乎不起作用

c - ssize_t 和 size_t 给出不同的值

C 语言中的复杂声明