js建立弹幕时间轴

发布于 2022-09-01 12:50:28 字数 469 浏览 18 评论 0

这里说的时间轴并不是类似以下形式
图片描述
而是类似bilibili或者acfun那种弹幕的时间轴
上面所说的两个例子都是用flash实现的
苦于我根本不懂flash,也没有学习的冲动
所以想有没有js实现
要显示弹幕倒没什么,但是时间轴要怎么办呢??
在哪些时间显示哪些个弹幕怎么控制好呢?
目前只能想到很蠢的方法,
在弹幕的数据结构中加上显示时间的标识
然后用setTimeOut方法
在每过一秒就遍历弹幕数组,把时间匹配的弹幕取出显示到屏幕上
但是这样在弹幕很多的情况下就有很多问题吧

有人可以指教下,支个招吗

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

随波逐流 2022-09-08 12:50:28

首先可以说明一下,flash中的ActionScript 3.0和JavaScript一样,语法核心都是ECMAScript,所以比较近似,在一定程度上可以互通。

弹幕时间轴,我想到的一个可能有些改进的思路是,将弹幕解析分为2个阶段。 第1个阶段为弹幕初始化,此时对弹幕数组做遍历,将它们重新整理成一个Object。在这个Object中,时间点作为key,弹幕内容作为value。比如

var danmaku = {
    1: [
        "六周年!",
        "前方持续高能"
    ],
    2: [
        "干杯!"
    ]
    // ...
};

然后第2个阶段,运行一个持续的工作(比如每1秒),根据视频当前播放到的时间点,直接通过key来取得该时间点上的弹幕,然后显示到屏幕上。Object的key查询,会比每一次都遍历数组要好一些。

B站给过一个Android开源弹幕引擎,不过毕竟不同语言,仅供参考:https://github.com/Bilibili/DanmakuFlameMaster

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文