gpt4 book ai didi

c - 使用 WebKitGTK 播放 html5 视频

转载 作者:行者123 更新时间:2023-11-30 18:14:00 25 4
gpt4 key购买 nike

我正在尝试在使用 webkitgtk 并用 C 编写的程序中播放 html5 视频。

为了测试 html5 视频,我设置了一个带有网页的服务器:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<video autoplay="autoplay" >
<source src="./movie.ogv" type="video/ogg">
Your browser does not support the video tag.
</video>
</body>
</html>

它在 Firefox 中可以工作,但是当我使用我的程序显示该网页时,视频无法工作。

我的C程序:

#include <gtk/gtk.h>
#include <webkit/webkit.h>


static void destroyWindowCb(GtkWidget* widget, GtkWidget* window);
static gboolean closeWebViewCb(WebKitWebView* webView, GtkWidget* window);

int main(int argc, char* argv[])
{
// Initialize GTK+
gtk_init(&argc, &argv);

// Create an 800x600 window that will contain the browser instance
GtkWidget *main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_decorated(main_window, false);
gtk_window_move(main_window,0,0);
gtk_window_set_default_size(GTK_WINDOW(main_window), 800, 600);

// Create a browser instance
WebKitWebView *webView = WEBKIT_WEB_VIEW(webkit_web_view_new());

// Create a scrollable area, and put the browser instance into it
GtkWidget *scrolledWindow = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledWindow),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_container_add(GTK_CONTAINER(scrolledWindow), GTK_WIDGET(webView));

// Set up callbacks so that if either the main window or the browser instance is
// closed, the program will exit
g_signal_connect(main_window, "destroy", G_CALLBACK(destroyWindowCb), NULL);
g_signal_connect(webView, "close-web-view", G_CALLBACK(closeWebViewCb), main_window);

// Put the scrollable area into the main window
gtk_container_add(GTK_CONTAINER(main_window), scrolledWindow);

// Load a web page into the browser instance
webkit_web_view_load_uri(webView, "http://localhost/");
//webkit_web_view_load_uri(webView, "http://www.shastaherps.org/sampleHTML5.html#multimedia");

// Make sure that when the browser area becomes visible, it will get mouse
// and keyboard events
gtk_widget_grab_focus(GTK_WIDGET(webView));

// Make sure the main window and all its contents are visible
gtk_widget_show_all(main_window);

// Run the main GTK+ event loop
gtk_main();

return 0;
}


static void destroyWindowCb(GtkWidget* widget, GtkWidget* window)
{
gtk_main_quit();
}

static gboolean closeWebViewCb(WebKitWebView* webView, GtkWidget* window)
{
gtk_widget_destroy(window);
return TRUE;
}

有什么建议吗?

谢谢。

P.D 我从 Ubuntu 存储库安装 libwebkitgtk。

最佳答案

来自资源文件的支持:

~$ sudo apt-get install libgtk-3-dev libwebkitgtk-3.0-dev

~$ gcc -Wall -o videoplayer main.c pkg-config gtk+-3.0 --cflags --libs pkg-config webkitgtk-3.0 --cflags --libs

示例:

>

/* 在 webkit2gtk-4.0 中不可用 */

不支持资源文件:

~$ sudo apt-get install libgtk-3-dev libwebkit2gtk-4.0-dev

~$ gcc -Wall -o videoplayer main.c pkg-config gtk+-3.0 --cflags --libs pkg-config webkit2gtk-4.0 --cflags --libs

关于c - 使用 WebKitGTK 播放 html5 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20100645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com