在 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
,而后播放视频。