# 使用 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` and
`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 使用的插件必須激活.
示例代碼 :
```javascript
// You have to pass the filename of `widevinecdmadapter` here, it is
// * `widevinecdmadapter.plugin` on OS X,
// * `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');
var mainWindow = null;
app.on('ready', function() {
mainWindow = new BrowserWindow({
webPreferences: {
// The `plugins` have to be enabled.
plugins: true
}
})
});
```
## 驗證插件
為了驗證插件是否工作,你可以使用下面的方法 :
* 打開開發者工具查看是否 `navigator.plugins` 包含了 Widevine
CDM 插件.
* 打開 `https://shaka-player-demo.appspot.com/` 加載一個使用
`Widevine` 的 manifest.
* 打開 http://www.dash-player.com/demo/drm-test-area/, 檢查是否界面輸出 `bitdash uses Widevine in your browser`, 然后播放 video.
- 介紹
- 常見問題
- Electron 常見問題
- 向導
- 支持平臺
- 分發應用
- 提交應用到 Mac App Store
- 打包應用
- 使用 Node 原生模塊
- 主進程調試
- 使用 Selenium 和 WebDriver
- 使用開發人員工具擴展
- 使用 Pepper Flash 插件
- 使用 Widevine CDM 插件
- 教程
- 快速入門
- 桌面環境集成
- 在線/離線事件探測
- API文檔
- 簡介
- 進程對象
- 支持的 Chrome 命令行開關
- 環境變量
- 自定義的 DOM 元素
- File 對象
- <webview> 標簽
- window.open 函數
- 在主進程內可用的模塊
- app
- autoUpdater
- BrowserWindow
- contentTracing
- dialog
- globalShortcut
- ipcMain
- Menu
- MenuItem
- powerMonitor
- powerSaveBlocker
- protocol
- session
- webContents
- Tray
- 在渲染進程(網頁)內可用的模塊
- desktopCapturer
- ipcRenderer
- remote
- webFrame
- 在兩種進程中都可用的模塊
- clipboard
- crashReporter
- nativeImage
- screen
- shell
- 開發
- 代碼規范
- 源碼目錄結構
- 與 NW.js(原 node-webkit)在技術上的差異
- 構建系統概覽
- 構建步驟(OS X)
- 構建步驟(Windows)
- 構建步驟(Linux)
- 在調試中使用 Symbol Server