【发布时间】:2021-01-03 10:32:00
【问题描述】:
在 Python GTK+ 3 应用程序中,我有一个简单的 WebKit2.WebView(无自定义)来显示一组 html 字符串(无实时浏览)。 html 包含一个带有一些 youtube 视频的 javascript 灯箱。当我打开它们时,会显示 youtube 视频框,但无法播放内容,并且出现黑屏提示(“发生错误。请稍后再试。(播放 ID:...”)。
网上找到的类似图片:https://i.redd.it/gwqswatndiy11.png
然后我尝试使用 Gnome Web 浏览器(Linux Mint 18.3 上的 v 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)
【问题讨论】:
标签: webkit gtk3 pygtk pygobject gnome-3