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/demo/drm-test-area/,检查页面是否显示
bitdash uses Widevine in your browser
,然后播放视频。
Electron 使用Widevine CDM插件相关推荐
- Electron 使用Pepper Flash插件
Electron 中支持 Pepper Flash 插件的使用.想要在 Electron 里面使用 Pepper Flash 插件,我们需要手动设置 Pepper Flash 的路径,并且在应用程序中 ...
- 向vue中集成electron(使用electron-builder插件直接将electron集成到自己的项目)
文章目录 前言 一.创建一个vue项目 二.集成electron 三.运行项目 前言 一个完整的解决方案,用于打包和构建适用于 macOS.Windows 和 Linux 的可分发 Electron ...
- Electron 教程_20201007
Electron 教程 Electron 教程简介 Electron 快速入门 Electron 桌面环境集成 Electron 在线/离线事件探测 Electron 进程 Electron 支持的 ...
- Electron flash插件
Electron 支持 Pepper Flash 插件.要在 Electron 里面使用 Pepper Flash 插件,我们 要手动设置 Pepper Flash 的路径并且应用里启用 Pepper ...
- 【Electron】Electron开发入门(九):添加Flash插件
一.Electron官方开启Flash插件说明:https://electronjs.org/docs/tutorial/using-pepper-flash-plugin 看了这篇文章,并且各种操作 ...
- 深入理解 DRM (1) --了解Widevine与OEMCrypto
基本术语定义 Device Id 以空结尾的唯一标识设备的C字符串.最大32个字符,包括NULL终止. Device Key 由Widevine分配的128位AES密钥,用于保护授权. Keybox ...
- ZEGO教程:如何通过electron构建桌面跨平台音视频应用
近年来,视频直播.短视频.在线教育.在线医疗.人工智能.以及VR等视频领域的相关行业都非常热门,成为大众瞩目的焦点.而5G网络的相继普及,移动网速飞速提升,又将引起下一轮视频应用的革命. 可以看到,在 ...
- 是时候开发你自己的vscode扩展插件了
Visual Studio Code(以下简称vscode)是现在非常流行的一款编辑器,相信很多人都在用或者用过,至少也是听说过.不同于WebStorm这样的IDE大而全但稍显笨重,vscode算是比 ...
- PC游戏中用CEF3制作内嵌浏览器
因为项目需要,需要将游戏手机助手中的朋友圈给移植到PC游戏中,而以前游戏中的内嵌浏览器采用的是IE6内核,满足不了我们的需求,于是决定把Cef3内嵌到游戏中,在完成正常工作之余,利用闲散时间不断地查找 ...
- 从纸钱包,带你走进贴心的BCH!
数字货币,是数十年来密码学的结晶之作,与计算机科学有难以割裂的联系.对于其存储方式,多数人会选择将其存储在热钱包(手机APP.计算机软件等),亦有些人会使用硬件钱包. 无论选用哪种钱包,都会面临安全威 ...
最新文章
- libcurl使用多线程下载大文件源码示例!
- 机器学习_周志华_问题汇总_第2周
- Barracuda Backup 5.4版本添加了更多云存储
- win8 app内存溢出检测工具PerfView.exe的使用
- codeforces D. Palindrome Degree(hash)
- pandas删除某列有空值的行_Python-零基础学习Pandas知识点整理(2)
- 最新最详细最简洁Eclipse调试PHP配置详解(Xdebug,Zend Debugger)
- Fibonacci(求前四位数)
- 用云原生的思维践行云原生,华为云深耕数字化,一切皆服务
- dmv io读写高的sql_适用于DBA的前8大新(或增强)SQL Server 2017 DMV和DMF
- 201521123058 软工阅读第二次作业
- java线程并发库之--线程阻塞队列ArrayBlockingQueue
- Counting Bits -leetcode
- 蓝桥杯历年省赛真题汇总及题目详解
- halcon21.11安装教程详解
- 模型预测控制的缺点_模型预测控制简要内容
- CAD中属性编辑操作——对象属性
- PS从入门到精通第4节——祖传抠图技法
- ijkplayer环境搭建
- 视频剪辑方法,在视频上添加图片或者视频
热门文章
- CharSequence接口
- 微电子计算机是信息技术的,信息技术说第三十五说,计算机微电子技术
- 使用linux批量引物设计,primer3引物设计详解
- 收盘:用友软件跌10.02%报13.2元 换手3.26%
- 关关采集器如何配置代理ip【图文教程】
- 电磁场理论复习笔记-第一章(下)
- kali linux 无线攻击——aircrack-ng
- matlab与螺旋桨,基于Matlab的船用螺旋桨计算机实时仿真及GUI设计
- Epson LQ1600K3+ 打印区域
- 图论学习笔记——可达矩阵