# 短剧播放器接口

本文主要介绍下短剧播放器插件提供的几个接口,在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)获取其实例,大部分的接口都在该实例对象上提供,例如getInfoshowChargeDialog等。获取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 免费剧集列表,注意:此字段仅改变目录中的剧集显示 ui,并不会做真正的解锁处理

data是加密串具体参考短剧播放器加密方案章节。

FreeItem字段定义如下:

字段名 类型 必填 描述
start_serial_no number 起始免费剧集编号,从1开始
end_serial_no number 结束免费剧集编号,包含此集

# PlayletManager.setFreeList(Object param)

在用户观看过程中重新设置免费剧列表,注意:此接口仅改变目录中的剧集显示 ui,并不会做真正的解锁处理。接受的参数字段定义如下:

字段名 类型 必填 描述
list Array 免费剧集列表

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表示每次收起充值弹窗后销毁充值组件

# 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 设置多个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.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。 注意:接口调用成功的前提是用户必须至少点击过页面。