首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Widevine CDM插件 | Using Widevine CDM Plugin

在Electron中,您可以使用Chrome浏览器附带的Widevine CDM插件。

获取插件

由于许可原因,Electron未附带Widevine CDM插件,为了获得它,您需要首先安装官方的Chrome浏览器,该浏览器应该与您使用的Electron版本的架构和Chrome版本相匹配。

注意:主要版本的Chrome浏览器必须与Electron使用的Chrome版本相同,否则该插件即使navigator.plugins显示已加载,也不会运行。

Windows&MacOS

chrome://components/在Chrome浏览器中打开,找到WidevineCdm并确保它是最新的,然后您可以从APP_DATA/Google/Chrome/WidevineCDM/VERSION/_platform_specific/PLATFORM_ARCH/目录中找到所有插件二进制文件。

APP_DATA是系统存储应用程序数据的位置,在Windows上是%LOCALAPPDATA%macOS ~/Library/Application SupportVERSION是Widevine CDM插件的版本字符串,就像1.4.8.866PLATFORMmacwinARCHx86x64

在Windows所需的二进制文件widevinecdm.dllwidevinecdmadapter.dll,在Mac OS它们是libwidevinecdm.dylibwidevinecdmadapter.plugin。你可以将它们复制到你喜欢的任何地方,但它们必须放在一起。

Linux

在Linux插件二进制文件与Chrome浏览器一起发货,您可以在其中找到/opt/google/chrome,文件名是libwidevinecdm.solibwidevinecdmadapter.so

使用插件

获取插件文件后,您应该通过命令行开关widevinecdmadapter将Electron的路径传递给Electron --widevine-cdm-path,并将插件的版本与--widevine-cdm-version开关一起传递。

注意:虽然只有widevinecdmadapter二进制文件传递给Electron,但widevinecdm二进制文件必须放在一边。

命令行开关必须在模块ready事件app发出之前传递,并且使用此插件的页面必须启用插件。

示例代码:

代码语言:javascript
复制
const {app, BrowserWindow} = require('electron')

// You have to pass the filename of `widevinecdmadapter` here, it is
// * `widevinecdmadapter.plugin` on macOS,
// * `libwidevinecdmadapter.so` on Linux,
// * `widevinecdmadapter.dll` on Windows.
app.commandLine.appendSwitch('widevine-cdm-path', '/path/to/widevinecdmadapter.plugin')
// The version of plugin can be got from `chrome://plugins` page in Chrome.
app.commandLine.appendSwitch('widevine-cdm-version', '1.4.8.866')

let win = null
app.on('ready', () => {
  win = new BrowserWindow({
    webPreferences: {
      // The `plugins` have to be enabled.
      plugins: true
    }
  })
  win.show()
})

验证插件

要验证插件是否工作,可以使用以下方法:

  • 打开devtools并检查是否navigator.plugins包含Widevine CDM插件。

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com