Barrage for MiniProgram

小程序弹幕组件,覆盖在 原生组件上时,请确保组件已经同层化。参考用例。弹幕组件的实现采用了 canvas & dom 两种方式,通过 rendering-mode 属性进行指定。dom 的方式兼容性高,当对小程序基础库低版本( v2.9.2 以下)有要求时,可以采用这种渲染方式。canvas 的方式通常性能更好,动画更为流畅,但仅在基础库 v2.9.2 版本及以上可以使用。
注意事项:在开发者工具上,canvas 的渲染方式无法使用 view 等普通组件覆盖在弹幕上方,需采用 cover-view。真机上可以使用普通的 view 覆盖在弹幕上。
属性列表
| z-index | number | 10 | 否 | 弹幕的层级 |
| rendering-mode | string | canvas | 否 | 渲染模式 |
使用方法
npm install --save miniprogram-barrage
{
"usingComponents": {
"barrage": "miniprogram-barrage",
}
}
<video class="video" src="{{src}}">
<barrage class="barrage" rendering-mode="canvas" z-index="100"></barrage>
</video>
Page({
onReady() {
this.addBarrage()
},
addBarrage() {
const barrageComp = this.selectComponent('.barrage')
this.barrage = barrageComp.getBarrageInstance({
font: 'bold 16px sans-serif',
duration: this.data.duration,
lineHeight: 2,
mode: 'separate',
padding: [10, 0, 10, 0],
range: [0, 1]
})
this.barrage.open()
this.barrage.addData(data)
}
})
配置
Barrage 默认配置
{
duration: 15,
lineHeight: 1.2,
padding: [0, 0, 0, 0],
alpha: 1,
font: '10px sans-serif',
mode: 'separate',
range: [0, 1],
tunnelShow: false,
tunnelMaxNum: 30,
maxLength: 30,
safeGap: 4,
}
弹幕数据配置
{
color: '#000000',
content: '',
image: {
head: {src, width, height, gap = 4},
tail: {src, width, height, gap = 4},
}
}
接口
barrage.open()
barrage.close()
barrage.addData(data: array)
barrage.send(data: object)
barrage.setRange(range: array)
barrage.setFont(font: string)
barrage.setAlpha(alpha: number)
barrage.showTunnel()
barrage.hideTunnel()