乐趣区

关于electron:Electron-使用Widevine-CDM插件

Electron 中,咱们能够应用 Widevine CDM 插件装载 Chrome 浏览器。

获取插件

Electron 没有为 Widevine CDM 插件配制许可 reasons,为了取得它,首先须要装置官网的 chrome 浏览器,这匹配了体系架构和 Electron 构建应用的 chrome 版本。

留神 Chrome 浏览器的次要版本必须和 Electron 应用的版本一样,否则插件不会无效,尽管 navigator.plugins 会显示你曾经装置了它。

Windows & OS X

Chrome 浏览器中关上 chrome://components/,找到 WidevineCdm 并且确定它更新到最新版本,而后就能够从 APP_DATA/Google/Chrome/WidevineCDM/VERSION/_platform_specific/PLATFORM_ARCH/ 门路找到所有的插件二进制文件。

APP_DATA 是零碎存放数据的地位,在 Windows 上为 %LOCALAPPDATA%。在 OS X 上为 ~/Library/Application Support

VERSIONWidevine CDM 插件的版本字符串,相似 1.4.8.866PLATFORMmacwinARCHx86x64

Windows 中,必要的二进制文件是 widevinecdm.dllwidevinecdmadapter.dll。在 OS X 中,则是 libwidevinecdm.dylibwidevinecdmadapter.plugin。咱们能够将它们复制到任何中央,然而它们必须要放在一起。

Linux

Linux 中,Chrome 浏览器将插件的二进制文件装载在一起,咱们能够在 /opt/google/chrome 门路下找到,文件名为 libwidevinecdm.solibwidevinecdmadapter.so

应用插件

在取得了插件文件后,咱们能够应用 --widevine-cdm-path 命令行开关来将 widevinecdmadapter 的门路传递给 Electron , 插件版本应用 --widevine-cdm-version 开关。

留神尽管只有 widevinecdmadapter 的二进制文件传递给了 Electronwidevinecdm 二进制文件该当放在它的旁边。

必须在 app 模块的 ready 事件触发之前应用命令行开关,并且 page 应用的插件必须激活。

示例:
const {app, BrowserWindow} = require('electron')
app.commandLine.appendSwitch('widevine-cdm-path', '/path/to/widevinecdmadapter.plugin')
app.commandLine.appendSwitch('widevine-cdm-version', '1.4.8.866')

let win = null
app.on('ready', () => {
  win = new BrowserWindow({
    webPreferences: {plugins: true}
  })
  win.show()})

验证插件

为了验证插件是否工作,能够应用上面的办法 :

  • 关上 devtools 开发者工具查看是否 navigator.plugins 蕴含了 WidevineCDM 插件。
  • 关上 https://shaka-player-demo.appspot.com/ 并加载一个应用 Widevinemanifest
  • 关上 http://www.dash-player.com/de…,查看页面是否显示 bitdash uses Widevine in your browser,而后播放视频。
退出移动版