# 短剧播放器接口
本文主要介绍下短剧播放器插件提供的几个接口,在js代码里,插件接口示例通过下面的代码获取
// 名字 playlet-plugin 必须和 app.json 里面引用的插件名一致
const playletPlugin = requirePlugin('playlet-plugin')
# playletPlugin.onPageLoad()
onPageLoad就是播放器页面的 onLoad 事件,接受的参数是函数,直接在 app.js 的 onLaunch 里面调用即可
App({
onLaunch(options) {
playletPlugin.onPageLoad(this._onPlayerLoad.bind(this))
},
_onPlayerLoad(info) {
console.log('onPlayerLoad', info.playerId, info)
// 在这里可以调用
const pm = playletPlugin.PlayletManager.getPageManager(info.playerId)
console.log('get playlet manager', pm)
},
})
# playletPlugin.getPluginVersion()
接口返回当前的插件版本,例如 0.1.4
# playletPlugin.getShareParams()
接口返回 Promise 实例,当从App跳转、分享、公众号、二维码等场景,直接进入到播放器页面的时候,开发者可通过此接口获取跳转到页面链接上的参数。
注意:如果不是直接进入播放器页面的,返回
Promise.reject({err: '首个页面不是播放器页面'})
。
playletPlugin.getShareParams().then(res => {
console.log('getShareParams res', res)
}).catch(err => {
console.log('getShareParams err', err)
})
# playletPlugin.setLoggerConfig(Object param)
设置播放器插件的日志输出:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
info | boolean | 否 | 是否输出 info 日志,默认为 false |
debug | boolean | 否 | 是否输出 debug 日志,默认为 false |
log | boolean | 否 | 是否输出 log 日志,默认为 false |
warn | boolean | 否 | 是否输出 warn 日志,默认为 true |
error | boolean | 否 | 是否输出 error 日志,默认为 true |
# playletPlugin.PlayletManager
PlayletManager 是一个类,可通过 playletPlugin.PlayletManager.getPageManager(playerId)
获取其实例,大部分的接口都在该实例对象上提供,例如 getInfo
、showChargeDialog
等。获取 PlayletManager 示例如下:
App({
onLaunch(options) {
playletPlugin.onPageLoad(this._onPlayerLoad.bind(this))
},
_onPlayerLoad(info) {
console.log('onPlayerLoad', info.playerId, info)
// 在这里可以调用
const pm = playletPlugin.PlayletManager.getPageManager(info.playerId)
console.log('get playlet manager', pm)
},
})
在很多接口,都可以获取到 playerId,例如 onPageLoad 事件、充值组件、运营组件等,然后通过 playerId 可以获取到 PlayletManager 实例。
PlayletManager 实例的更多接口介绍如下:
# PlayletManager.setCanPlaySerialList(Object param)
设置可播放剧集,接受的参数字段定义如下:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
data | string | 是 | 可播放剧集的加密串 |
freeList | Array<FreeItem> | 否 | 免费剧集列表,注意:此字段仅改变目录中的剧集显示 ui,并不会做真正的解锁处理 |
data 是加密串,具体参考短剧播放器加密方案章节。
FreeItem 字段定义如下:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
start_serial_no | number | 是 | 起始免费剧集编号,从 1 开始 |
end_serial_no | number | 是 | 结束免费剧集编号,包含此集 |
# PlayletManager.setFreeList(Object param)
在用户观看过程中重新设置免费剧列表,注意:此接口仅改变目录中的剧集显示 ui,并不会做真正的解锁处理。接受的参数字段定义如下:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
list | Array<FreeItem> | 否 | 免费剧集列表 |
FreeItem字段定义如下:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
start_serial_no | number | 是 | 起始免费剧集编号,从1开始 |
end_serial_no | number | 是 | 结束免费剧集编号,包含此集 |
# PlayletManager.getInfo()
获取当前剧集信息,返回 Object 字段定义如下:
字段名 | 类型 | 描述 |
---|---|---|
playerId | string | 播放器页面唯一ID,可通过此参数获取到 PlayletManager 实例 |
srcAppid | string | 提审方 appid |
dramaId | string | 媒资管理后台上传的剧目 id |
serialNo | number | 当前播放到第几集 |
extParam | string | 扩展参数 |
注意:以上为固定常用字段,其他页面路径上的参数也会在此处返回。
# PlayletManager.onCheckIsCanPlay(Function func)
播放到需要解锁的剧集触发此事件,开发者可在此事件内解锁剧集。
参数名 | 类型 | 描述 |
---|---|---|
serialNo | number | 剧集ID |
isRetry | boolean | 是否因重试而触发。当遇到可能由于 session_key 过期等原因引发解密失败时,插件会重试一次触发 onCheckIsCanPlay |
# PlayletManager.isCanPlay(Object param)
设置可播放剧集,接受的参数字段定义如下:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
data | string | 否 | 可播放剧集的加密串,当传入 useLastStatus=true 时可不传 |
serialNo | number | 是 | 剧集ID |
useLastStatus | boolean | 否 | 表示维持之前设置的剧集上锁状态,此字段设置为 true 时可不传 data 字段,使用免开发激励视频广告解锁时不可使用此字段 |
data 是加密串,具体的含义和 setCanPlaySerialList 一样,可参考短剧播放器加密方案章节。
# PlayletManager.onShowChargeDialog(Function func)
充值弹窗打开事件
# PlayletManager.onHideChargeDialog(Function func)
充值弹窗关闭事件
# PlayletManager.hideChargeDialog()
关闭充值弹窗
# PlayletManager.showChargeDialog()
打开充值弹窗
# PlayletManager.play()
继续播放
# PlayletManager.pause()
暂停播放
# PlayletManager.onDataReport(Function func)
播放器内相关事件的回调函数
# PlayletManager.onBack(Function func)
播放器内左上角返回点击事件
# PlayletManager.changeDrama(Object param)
更换剧目,接受的参数字段定义如下:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
queryString | string | 是 | key=value&key1=value1 格式的参数 |
# PlayletManager.updateChargeDialogInfo(Object param)
更新充值弹窗,接受的参数字段定义如下:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
isTransparentBackground | boolean | 否 | 默认为 false;设置为 true 表示弹窗背景为透明 |
isDestroyOnHide | boolean | 否 | 默认为 false;设置为 true 表示每次收起充值弹窗后销毁充值组件 |
maskTransparent | boolean | 否 | 默认为 false;设置为 true 表示弹窗遮罩为透明 |
maskClosable | boolean | 否 | 默认为 true;设置为 false 表示不可点击弹窗遮罩来关闭弹窗 |
# PlayletManager.updateChargeDialogHeight(Object param)
更新充值弹窗高度,接受的参数字段定义如下:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
height | number | 是 | 设置充值弹窗高度 |
# PlayletManager.setVisualEffectOnCapture(Object param)
接口同 wx.setVisualEffectOnCapture
# PlayletManager.setDramaFlag(Object param)
设置分享参数,接受的参数字段定义如下:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
share | boolean | 是 | 默认 true,是否打开分享 |
withShareTicket | boolean | 否 | 默认 true,同小程序分享的 withShareTicket |
# PlayletManager.setExtParam(string extParam)
修改extParam参数
# PlayletManager.onCustomEvent(string name, Function func)
注册自定义事件,用于在充值组件、playletManager、自定义运营位等组件间通信
# PlayletManager.offCustomEvent(string name, Function func)
销毁通过 onCustomEvent 注册的事件
# PlayletManager.emitCustomEvent(string name, Function func)
触发通过 onCustomEvent 注册的事件函数
# PlayletManager.updateOpenArea(Object param)
设置自定义开放区域参数,接受的参数字段定义如下:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
showLeft | boolean | 否 | 默认 false,是否显示组件 open-area-left |
showRight | boolean | 否 | 默认 false,是否显示组件 open-area-right |
leftWidth | number | 否 | 设置组件 open-area-left 的宽度 |
leftHeight | number | 否 | 设置组件 open-area-left 的高度 |
rightHeight | number | 否 | 设置组件 open-area-right 的高度 |
leftsideAreaList | Array<LeftSideOption> | 否 | 设置多个 open-area-left-side 组件,数组每一项为 LeftSideOption 对象 |
ext | string | 否 | 自定义参数,组件 open-area-left、open-area-right、open-area-left-side 均可通过属性获取到此参数 |
LeftSideOption对象定义如下:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
left | number | 否 | 默认 false,设置组件的距离左侧位置 |
top | number | 否 | 默认 false,设置组件的距离顶部位置 |
width | number | 否 | 设置组件宽度 |
height | number | 否 | 设置组件高度 |
# PlayletManager.setVideoOption(Object param)
设置播放器的播放配置,接受的参数字段定义如下:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
objectFit | string | 否 | 同 video 组件的 object-fit 属性,默认会根据视频宽高进行计算 |
aspectRatio | number | 否 | 视频高宽比,当 objectFit 为 fill 时有效 |
loop | boolean | 否 | 是否循环播放,默认 false |
# PlayletManager.startBackgroundPreview(Object param)
设置剧集未解锁时的视频预览播放,接受的参数字段定义如下:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
loop | boolean | 否 | 是否循环播放,默认为 true |
mask | boolean | 否 | 是否显示遮罩,默认为 true |
muted | boolean | 否 | 是否静音,默认为 true |
# PlayletManager.stopBackgroundPreview()
停止剧集未解锁时的视频预览播放。
# PlayletManager.navigateTo(Object param)
接口含义和参数同 wx.navigateTo。
注意:接口调用成功的前提是用户必须至少点击过页面。
# PlayletManager.navigateBack(Object param)
接口含义和参数同 wx.navigateBack。
注意:接口调用成功的前提是用户必须至少点击过页面。
# PlayletManager.redirectTo(Object param)
接口含义和参数同 wx.redirectTo。
注意:接口调用成功的前提是用户必须至少点击过页面。
# PlayletManager.switchTab(Object param)
接口含义和参数同 wx.switchTab。
注意:接口调用成功的前提是用户必须至少点击过页面。
# PlayletManager.reLaunch(Object param)
接口含义和参数同 wx.reLaunch。
注意:接口调用成功的前提是用户必须至少点击过页面。