Skip to content

t-barrage

Barrage 弹幕

组件介绍

t-barrage 是一个基于 Canvas 绘制的弹幕组件,采用高性能 Canvas 绘制技术,减少 DOM 渲染,在页面中实现流畅的滚动文字效果。组件支持自定义弹幕的样式、速度和内容,适用于直播、互动活动等场景,提升用户体验和互动性。

平台兼容

HarmonyH5AndroidiOS小程序UTS

基础用法

基础用法参考 demo/barrage/barrage.uvue,通过 ref 获取组件实例,调用 createDanmu 方法创建弹幕。

vue
<template>
  <t-row class="bg-#000 twh-1000-400 r-20 overflow-hidden">
    <t-barrage ref="barrageRef" class="twh-100%" :trackHeight="40"></t-barrage>
  </t-row>
  
  <t-row class="mt-30">
    <t-input v-model="danmuText" placeholder="输入弹幕内容" class="mr-20"></t-input>
    <t-button @click="sendDanmu">发送弹幕</t-button>
  </t-row>
</template>

<script setup>
const barrageRef = ref<any>(null);
const danmuText = ref('');

function sendDanmu() {
  if (danmuText.value) {
    // 创建弹幕,参数:文本内容,字体大小,速度
    barrageRef.value?.createDanmu(danmuText.value, 16, 2);
    danmuText.value = '';
  }
}

// 自动发送测试弹幕
setInterval(() => {
  const texts = ['欢迎来到直播间!', '主播好厉害!', '666', '这个产品真不错', '支持主播'];
  const randomText = texts[Math.floor(Math.random() * texts.length)];
  barrageRef.value?.createDanmu(randomText, 16, 2);
}, 2000);
</script>

Props

属性名说明类型默认值
trackHeight弹幕轨道的高度number30

Methods

方法名说明参数
createDanmu创建弹幕text: string (弹幕内容), fontSize: number (字体大小), speed: number (弹幕速度)