短视频播放器小程序插件(云点播)调用playbackRate设置倍数播放无效?
问题说明: 云点播短视频播放器插件利用API VideoContext.playbackRate(number rate)设置倍数播放无效。
相同处理逻辑,小程序组件<video />没有该问题。 插件版本: "plugins": {
"myPlugin": {
"version": "0.1.2",
"provider": "wx116d0dd5e6a39ac7"
}
}
代码逻辑如下: 在onReady里创建 video 上下文 onReady() {
// 创建 video 上下文 VideoContext 对象。
// video组件id 为 video
this.videoContext = wx.createVideoContext('video')
// 设置倍数
this.changeRate()
},
// 切换视频播放倍数
changeRate(e) {
const rates = this.data.rates
const index = e ? parseInt(e.currentTarget.id) : this.data.currentRate
this.setData({
currentRate: index,
showRates: false
}, () => {
const rate = rates[index]
this.videoContext.playbackRate(rate)
})
}
WXML调用,my-player为引入云点播短视频播放器插件的组件名。
微信开发者工具里渲染的dom结构 [图片] 解决方法: 云点播短视频播放器插件创建video上下文VideoContext对象与内置<video />标签不一样。 内置<video />标签: const ctx = wx.createVideoContext(string id, Object this),建议使用wx.createSelectorQuery获取 context 对象。
插件: // 引入云点播短视频播放器插件
const plugin = requirePlugin('app.json中引入的插件自定义的名字')
// 创建videoContext对象
const ctx = plugin.getContext('palyerid')
// 设置倍数
ctx.playBackRate(rate)