【问题标题】:Why my webkit could't find libflashplayer.so under the directory of /usr/lib/mozilla/plugins为什么我的 webkit 在 /usr/lib/mozilla/plugins 目录下找不到 libflashplayer.so
【发布时间】:2012-11-13 13:47:50
【问题描述】:

我正在为 Linux 的 GTk+3.0 和 webkitGTK+ 开发一个应用程序,它应该在 WebView 中播放 swf 文件。首先,我尝试从设备打开 swf 文件,而不是通过互联网打开,但没有成功。 WebView 出现了,但在 WebView 内我只能看到一个白屏(缺少插件)。如果我将相同的 URL 加载到设备浏览器,则 Flash 文件可以正常播放。我得到了 libflashplayer.so 并安装了

sudo cp libflashplayer.so /usr/lib/mozilla/plugins/libflashplayer.so sudo mkdir /opt/google/chrome/plugins sudo cp libflashplayer.so /opt/google/chrome/plugins

我认为我在 WebView 设置上遗漏了一些东西,但经过几个小时的搜索和谷歌搜索后,我仍然不知道是什么。

【问题讨论】:

  • 检查新复制的/usr/lib/mozilla/plugins/libflashplayer.so的权限 - 它可能以非root用户无法访问的方式复制。
  • 我再次更改为 root 用户和 cp libflashplayer.so /usr/lib/mozilla/plugins/libflashplayer.so。但它仍然不起作用。我的天!!!

标签: c linux flash webkit webkitgtk


【解决方案1】:

现在,如果安装到 /usr/lib/mozilla/plugins 中,应该可以检测到 Flash 插件并正常加载。 (WebKit 不会在 /opt/google/chrome/plugins 中查找,所以放在那里没有效果。)

在您发布此问题时,WebKitGTK+ 无法处理 Flash,因为 Flash 链接到 GTK+ 2,而您的应用程序正在使用 GTK+ 3。不可能在同一个应用程序中混合使用两个版本的 GTK+;尝试加载 Flash 插件会导致您的应用程序挂起,因此 WebKit 跳过了该插件。所以问题是 Adobe Flash 与 GTK+ 3 不兼容

如今,WebKitGTK+ 在单独的插件进程中运行插件,因此这不再是问题。它有两个独立的插件进程,一个链接到 GTK+ 3,一个链接到 GTK+ 2,并在运行时为插件选择正确的插件进程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多