首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法让NPAPI插件为mime类型"image/webp:webp:WebP“工作

无法让NPAPI插件为mime类型"image/webp:webp:WebP“工作
EN

Stack Overflow用户
提问于 2012-07-18 23:20:44
回答 2查看 1.3K关注 0票数 0

我已经编译了webP的NPAPI插件:

http://code.google.com/p/webp-npapi-linux/

它在我的火狐上运行得很好。我只是不明白如何让它在Google Chrome上工作。我创建了json文件:

代码语言:javascript
复制
$ cat manifest.json
{
  "name": "My First Extension",
  "version": "1.0",
  "manifest_version": 2,
  "description": "The first extension that I made.",
  "plugins": [
    { "path": "webp-npapi.so", "public": true }
  ]
}

然后我启动Google Chrome,转到chrome://extensions,点击“加载未打包的扩展...”。我可以看到它出现在列表中:

代码语言:javascript
复制
My First Extension - Version: 1.0 (Unpacked)
The first extension that I made.
ID: bakhhdpebhmgoaecbmpkcbnmcmnamhhk

但是,我仍然无法打开任何*.webp图像!

我的测试HTML页面是:

代码语言:javascript
复制
<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<html> 
 <head> 
  <title> 
   Hello World Demonstration Document
  </title> 
 </head> 
<embed type="image/webp:webp:WebP" id="pluginId">
<script>
  var plugin = document.getElementById("pluginId");
  var result = plugin.myPluginMethod();  // call a method in your plugin
  console.log("my plugin returned: " + result);
</script>
 <body> 
  <h1> 
   Hello, World!
  </h1> 
<img src="1.sm.webp" alt="too bad"/>
 </body> 
</html> 

文件下载到本地(wget http://www.gstatic.com/webp/gallery/1.sm.webp)。在我看来ldd看起来还不错:

代码语言:javascript
复制
$ ldd webp-npapi.so
    linux-vdso.so.1 =>  (0x00007fffafdad000)
    libwebp.so.2 => /usr/lib/x86_64-linux-gnu/libwebp.so.2 (0x00007ff82fd60000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007ff82fa4c000)
    libm.so.6 => /lib/libm.so.6 (0x00007ff82f7c9000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007ff82f5b3000)
    libc.so.6 => /lib/libc.so.6 (0x00007ff82f251000)
    /lib64/ld-linux-x86-64.so.2 (0x00007ff8301c9000)

我错过了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-26 18:40:57

以下是解决方案。出于某种原因,firefox有一个内置的mime类型的机制(??)并将webp识别为图像。另一方面,chromium需要被告知图像是webp。

在我的Linux机器上,我所要做的就是在/etc/mime.types中注册MIME类型(或者在用户级别注册~/.mime.types )。要验证mime类型是否已注册,请执行以下命令:

代码语言:javascript
复制
$ grep webp /etc/mime.types
image/webp                  webp
票数 3
EN

Stack Overflow用户

发布于 2012-07-24 16:39:20

插件不能加载可能有几个原因。

在成功加载之前,

  1. The npapi插件在chrome中崩溃

在本例中,您需要使用以下命令从终端运行google chrome:google-chrome --plugin-startup-dialog并调试该问题(例如,使用gdb like so)

  • The依赖的插件未找到(这就是在我的示例中发生的情况,请参阅secreenshot)

通过执行ldd webp-npapi.so (并检查缺少的库的输出),确认库(libwebp.so)已安装并由webp-npopi.so找到。在我的例子中,webp-npapi插件是针对libwebp.so.0构建的,但是编译源代码会得到一个更新的库版本libwebp.so.3。你是不是从源代码中编译了webp-npapi-plugin?

  1. The插件加载正确,但您的embed/object标记错误

不太可能,如果它在火狐没有改变的情况下工作-你能用这个插件发布一个示例页面吗?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11544764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档