WebKit2.WebView(和 Gnome 浏览器)不播放 YouTube 视频



在Python GTK+3应用程序中,我有一个简单的WebKit2.WebView(无自定义(来显示一个设置的html字符串(无实时浏览(。html包含一个javascript灯箱和一些youtube视频。当我打开它们时,youtube视频框会显示,但内容没有播放,我会收到一个黑屏,上面写着("发生错误。请稍后再试。"(。
在网上找到类似的图像:https://i.redd.it/gwqswatndiy11.png

然后我尝试使用Gnome Web浏览器(Linux Mint 18.3上的3.18.11版本([基于WebKit]浏览YouTube网站,但每个视频都出现了同样的问题
当然,其他浏览器(Chromium和Firefox(都可以使用
此外,如果我在PyGtk+3应用程序中使用WebKit1而不是WebKit2,一切都会正常工作。所以我认为问题出在Webkit2选项配置上

有人知道如何解决这个问题吗?

这是我的代码摘录。正如你所看到的,我已经尝试过设置一些选项,但没有成功
[旁注:browser_settings.set_enable_media(True)给了我错误AttributeError: 'Settings' object has no attribute 'set_enable_media';我不明白为什么,因为在文档中存在该方法]

import gi
gi.require_version('Gtk', '3.0')
gi.require_version('GtkSource', '3.0')
gi.require_version('WebKit2', '4.0')
from gi.repository import Gtk, GtkSource, GLib, WebKit2
self.webview = WebKit2.WebView.new()
browser_settings = self.webview.get_settings()
browser_settings.set_property('javascript-can-access-clipboard', bool(True))
# browser_context = self.webview.get_context()
# cookie_manager = browser_context.get_cookie_manager()
# cookie_manager.set_accept_policy(WebKit2.CookieAcceptPolicy.ALWAYS)
# browser_settings.set_enable_xss_auditor(False)
# browser_settings.set_allow_universal_access_from_file_urls(True)
# browser_settings.set_allow_file_access_from_file_urls(True)
# browser_settings.set_enable_media(True)
# browser_settings.set_enable_media_capabilities(True)
# browser_settings.set_enable_media_stream(True)
# browser_settings.set_enable_mediasource(True)
# browser_settings.set_media_playback_allows_inline(True)
self.webview.set_settings(browser_settings)

我最初也无法在Ubuntu Budgie 20.10上的Gnome Web(3.38.1(上播放Youtube视频。但我还是成功了。

我检查了软件,搜索了";gstreamer";我看到大多数GStreamer编解码器已经安装。

我能够通过安装";用于GStreamer的ffmpeg插件";以及";GStreamer WPEWebKit插件";。

最新更新