@polyv/vod-player-electron-sdk
v1.3.0
Published
vod-player-electron-sdk - a Electron SDK that enables developers to integrate video playback capabilities into their Electron applications.
Downloads
7
Readme
SDK开发说明
@polyv/vod-player-electron-sdk
是保利威云点播PC端Electron版SDK,为客户提供保利威云点播一系列功能,包括下载、播放、防录制功能,能让客户快速接入自有业务。
环境要求
node: >= 16.17.1 | 18.20.3
Electron: 16.x.x
Windows: >= win7 sp1
Mac: >= 10.15.0+
开发说明
Demo构建示例:
//定义C++依赖下载路径,SDK将根据环境变量下载SDK实现,具体路径请咨询客服
export DEV_NODE_DOWNLOAD_URL="https://xxxx/PCPlayerSDK-Win-x64.7z" // win64
export DEV_NODE_DOWNLOAD_URL="https://xxxx/PCPlayerSDK-Win-x86.7z" // win32
export DEV_NODE_DOWNLOAD_URL="https://xxxx/PCPlayerSDK-Mac-x64.zip" // mac
//构建demo,默认情况下,npm会根据系统类型架构选择对应的二进制架构类型
npm ci / npm install
//特殊情况下,需要指定构建的二进制架构类型(比如:在M1的MAC上构建intel-x64的二进制)
npm ci --arch=ia32 // win32
npm ci --arch=x64 // win64
npm ci --arch=x64 // mac-intel-64
//运行demo
npm run start
开发文档
SDK 功能模块说明
- define: 定义所有的类型与接口,事件相关参数也定义在里面
- global: SDK的全局实例与方法
- player: 播放器实例的方法
- downloader: 下载器实例的方法
SDK 全局函数
const plvPlayerCore = createPlvPlayerCore()
console.log('sdk version:', plvPlayerCore.getSdkVersion())
// 设置SDK日志路径(utf-8)与级别
plvPlayerCore.setSdkLogLevel(PLVLogLevel.Info)
plvPlayerCore.setSdkLogFile('appData/xxx.log')
// 设置 viewer 信息,用于定位播放质量问题,在线播放下可以通过后台来查看,建议调用此接口设置信息
// 最新 vrm12/vrm13 下必须设置,否则播放会报错
const viewerInfo = {
viewerId: '业务id', // 唯一值
viewerName: '业务name',
}
plvPlayerCore.setSdkViewerInfo(viewerInfo)
// 初始化SDK
const accountInfo = {
userId: 'xxx',
appId: 'xxx',
subAccount: false
}
plvPlayerCore.init(accountInfo)
// 释放SDK,释放后对象不再可用.建议关闭程序时释放
plvPlayerCore.release()
// 事件观察
const fn = (evt) => {
console.log(evt)
}
plvPlayerCore.on(PLVEventType.PlayerPlay, fn)
plvPlayerCore.off(PLVEventType.PlayerPlay, fn)
// 以下为全局相关设置,也可以在初始化前设置,详见文档
plvPlayerCore.setSdkHwdecEnable(false)
plvPlayerCore.setSdkKeepLastFrame(true)
plvPlayerCore.setSdkLocalRememberPlay(true)
plvPlayerCore.setSdkRetryAttempts(-1, 500, 25000)
SDK 防录制
- 硬件防录制
当检测到采集卡等硬件录制设备插拔时触发,业务测可以根据回调判断是否禁播.SDK将尽量判断事件的准确性.- 参考 PLVEventType.HardwareRecording
- 软件防录制
在Electron架构中,您需要在Electron主进程中实现此功能.同时建议不断检测窗口标志,防止窗口标志被篡改为可录制状态.
SDK 播放器
// 创建播放器实例
const player = plvPlayerCore.createPlayer()
// 摧毁播放器-对象将不再可用
player.destroy()
// 设置播放器配置,在播放前可以不断更新使用
player.setConfig()
// 绑定视图HTML-DIV
player.bind()
// 播放
player.play()
// 停止
player.stop()
// 获取播放器相关回调
plvPlayerCore.on(PLVEventType.PlayerPlay, (evt) => {
console.log(evt)
})
SDK 下载器
// 创建下载器实例
const downloader = plvPlayerCore.createDownloader()
// 摧毁下载器-对象将不再可用
downloader.destroy()
// 设置下载器配置
downloader.setConfig()
// 开始
downloader.start()
// 停止
downloader.stop()
// 获取下载器相关回调
plvPlayerCore.on(PLVEventType.DownloaderProgress, (evt) => {
console.log(evt)
})
SDK 注意事项
- SDK对象释放后不再可用,需要重新创建
- 所有路径相关均使用utf-8编码
- Electron中注意代码与数据安全