3Shain / Comen

📺直播用弹幕栏【原bilichat】

Home Page:https://comen.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

chat-renderer的一些奇怪症状

3Shain opened this issue · comments

评论有时会两条一起出来?

我觉得这个应该不算是奇怪的症状吧?或者我没理解到你的意思?

直播的弹幕在弹幕多的时候就是在同一个包里面给你塞多条弹幕的,所以解出来可能看上去就变成了两条或多条一起出来了。

我觉得这个应该不算是奇怪的症状吧?或者我没理解到你的意思?

直播的弹幕在弹幕多的时候就是在同一个包里面给你塞多条弹幕的,所以解出来可能看上去就变成了两条或多条一起出来了。

事实上一个包塞了10+弹幕,我有故意拆分开,虽然我本地测试也是一条一条出来的,但看很多直播都是两条一起出来

commented

刚刚在看Aqua直播发现弹幕一会快一会慢,想到了一个解决办法

首先定义一个cache时间
收到弹幕就存到一个Array里,然后按照 Array.length/cache 的间隔显示弹幕
这样可以动态调整弹幕速度,并且起到一个按照cache时间的平均作用

但是缺点很明显,会增加延迟。

ps
应该可以通过某种技巧减少延迟的同时平均速度→_→

pss
然而这个方法似乎会导致你改好多代码
(我不会RxJS

刚刚在看Aqua直播发现弹幕一会快一会慢,想到了一个解决办法

首先定义一个cache时间
收到弹幕就存到一个Array里,然后按照 Array.length/cache 的间隔显示弹幕
这样可以动态调整弹幕速度,并且起到一个按照cache时间的平均作用

但是缺点很明显,会增加延迟。

ps
应该可以通过某种技巧减少延迟的同时平均速度→_→

pss
然而这个方法似乎会导致你改好多代码
(我不会RxJS

不知道你有没有仔细看过目前的renderer源码,但原理跟你说的基本一致。
目前是requestAnimationFrame入手的,间隔是(1秒/最大帧率)的整数倍

commented

刚刚在看Aqua直播发现弹幕一会快一会慢,想到了一个解决办法
首先定义一个cache时间
收到弹幕就存到一个Array里,然后按照 Array.length/cache 的间隔显示弹幕
这样可以动态调整弹幕速度,并且起到一个按照cache时间的平均作用
但是缺点很明显,会增加延迟。
ps
应该可以通过某种技巧减少延迟的同时平均速度→_→
pss
然而这个方法似乎会导致你改好多代码
(我不会RxJS

不知道你有没有仔细看过目前的renderer源码,但原理跟你说的基本一致。
目前是requestAnimationFrame入手的,间隔是(1秒/最大帧率)的整数倍

对不起,我其实刚刚才看到。我今天下午发现似乎多了个重复弹幕计数的功能,就过来翻了一下 commit 看到了 this.waitForRendering 那块地方。

Angular和Typescript看得我头有点大,代码读的比较慢。。。
还有RxJS,都是没接触过的玩意儿

gkd-renderer解决了这个问题