Skip to content

弹幕精简模式

描述

当在视频和直播等场景中,由于有实时渲染的需求,当渲染的弹幕数量过多时,会造成页面卡顿,这里有两种方法来实现:

  • 实现弹幕精简模式。
  • 设置 limits.view 来限制渲染的弹幕数量。

提示

和实现弹幕冷却时间的功能一样,弹幕精简模式的实现也是依赖 willRender 这个钩子来实现。

以弹幕精简模式来实现

ts
import { random } from 'aidly';
import { create } from 'danmu';

const manager = create<string>({
  plugin: {
    // 这里相比实现弹幕 cd,作为另一种实现对比,直接在初始化的时候插入默认插件来实现
    willRender(ref) {
      // 我们过滤 50% 的弹幕
      if (random(0, 100) < 50) {
        ref.prevent = true;
      }
      return ref;
    },
  },
});

设置 limits.view 来实现

ts
import { create } from 'danmu';

const manager = create<string>({
  limits: {
    // 在页面视图容器中能够同时渲染的最大值为 100 个
    view: 100,
  },
});

Released under the MIT License.