@polyv/vod-player-electron-sdk - v1.3.0

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中注意代码与数据安全

Generated using TypeDoc