Electron 使用Widevine CDM插件
Posted 知否
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
。
VERSION
是 Widevine CDM
插件的版本字符串,类似 1.4.8.866
。PLATFORM
是 mac
或 win
。ARCH
是 x86
或 x64
。
在 Windows
中,必要的二进制文件是 widevinecdm.dll
和 widevinecdmadapter.dll
。在 OS X
中,则是 libwidevinecdm.dylib
和widevinecdmadapter.plugin
。我们可以将它们复制到任何地方,但是它们必须要放在一起。
Linux
在 Linux
中,Chrome
浏览器将插件的二进制文件装载在一起 ,我们可以在 /opt/google/chrome
路径下找到,文件名为 libwidevinecdm.so
和libwidevinecdmadapter.so
。
使用插件
在获得了插件文件后,我们可以使用 --widevine-cdm-path
命令行开关来将 widevinecdmadapter
的路径传递给 Electron
, 插件版本使用 --widevine-cdm-version
开关。
注意虽然只有 widevinecdmadapter
的二进制文件传递给了 Electron
, widevinecdm
二进制文件应当放在它的旁边。
必须在 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/
并加载一个使用Widevine
的manifest
。 - 打开 http://www.dash-player.com/de...,检查页面是否显示
bitdash uses Widevine in your browser
,然后播放视频。
以上是关于Electron 使用Widevine CDM插件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用DOWNstream For Electron获取离线内容的受保护播放?
我有一个使用 VUE CLI 创建的项目,并且我已经安装了 vue-electron-builder 插件
使用Vue 插件 vue-cli-plugin-electron-builder 打包原生模板时报错解决