问题说明:
云点播短视频播放器插件利用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)
云点播短视频播放器插件创建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)
我也遇到同样的问题,麻烦官方尽快看看插件是什么问题~!
+1
云点播的问题可到云+社区提问
https://cloud.tencent.com/developer/ask
https://cloud.tencent.com/developer/ask/257636