jabbany / CommentCoreLibrary

Javascript Live Comment (Danmaku) Engine Implementation. JS弹幕模块核心,提供从基本骨架到高级弹幕的支持。
http://jabbany.github.io/CommentCoreLibrary/demo
MIT License
1.9k stars 304 forks source link

论支持的程度 #65

Closed esterTion closed 5 years ago

esterTion commented 7 years ago

晚上调了一个多小时试着加入scripting 测试了三个级别的code 鬼畜区的普通seek得加seek函数…… 最近的周刊的那个跳转按钮也不知道在报什么错 找了个印象中稍微算是比较简单的(av934961) 结果直接来个 UIComponent.setStyle not implemented ……

心里苦啊

不行我要开issue抱怨

jabbany commented 7 years ago

嘛,主要是越是显得简单的功能反而越难实现。。。

比如seek因为需要depend on播放器是否能seek和如何具体seek所以不能实现。 跳转按钮是B站自建的跳转链接函数,所以实现起来也没什么广泛意义。。。加上现在这版的按钮event还是没有从host派发所以应该是不work的。 UIComponent的style的东西整个有一个巨大flash的架构,估计实现完整支持可能还很遥远。

反倒是一些比如绘图函数、渐变动画之类的能比较好的实现。非常悲剧的是,现在这种弹幕动画越来越少,剩下的都是一些并不是很有意思的按钮之类的东西。

esterTion commented 7 years ago

确实 我看av120040里面,控制台报错一塌糊涂…… 感觉上只有小圆算是最还原的了

(说实在本来看着感觉发展了那么久了蛮期待的,看到不太工作心里还是有点小失望)

jabbany commented 7 years ago

嘛,这个还得怪B站播放器的代码弹幕API设计的太差 + 有好多BUG反而被当作feature在被一些代码弹幕用。。。这就非常捉急了。。。 加上B站播放器是容忍语法错误的,一边解析一边执行。。。JS就没那么友好了。

jabbany commented 7 years ago

对了,有一个专门实现代码兼容层的在这里:https://github.com/hozuki/Bulletproof

esterTion commented 7 years ago

之前翻博客确认存活的时候看到了,ture什么的

哎,后来者的路上,布满了前人留下的坑

jabbany commented 7 years ago

哦哦对,这个库里面还有一个专门补丁解决这些东西的。。。 https://github.com/jabbany/CommentCoreLibrary/blob/master/src/scripting/api/external/Typo.ts

esterTion commented 7 years ago

噫这一堆

我都想放弃拿到生产环境了,反正现在支持seek也就够了

jabbany commented 7 years ago

这还只是一点点,比如还有

esterTion commented 7 years ago

从0开始写parser(不

esterTion commented 7 years ago

对了问几个东西 想了想还是决定就这么上线吧

一大堆的js能够bundle到什么地步,比如把worker ooapi api/*全部合并minify? 没太用过typescript,那个.map能扔掉不

esterTion commented 7 years ago

试了下把worker后面import的一堆全部合并似乎没问题,就是不知道map有没有用了

(才发现abp b ver也是你写的,给dalao递java) (发完看了下发现秒打脸……abp b ver的fork没改copyright)

jabbany commented 7 years ago

*.map主要是用于定位代码在TypeScript源码的位置,方便调试的时候找到源码。实际使用于production的时候没有必要保留。 Scripting的API部分每个模块之所以没合并是因为非合并版开发比较容易看出来还有多少没实现。实际使用于production的时候也是可合并在一起的。

esterTion commented 7 years ago

那就没什么问题了

有想法把绘制弄到canvas么,大量dom操作的时候简直上天 比如这个,刚开始看着感觉支持真好,结果中间字符画出来就傻逼了

kore-tao commented 7 years ago

这个不支持直播呢?有什么解决办法么

jabbany commented 7 years ago

@kore-tao 没懂你的问题。但是感觉好像和这个issue无关。。。

esterTion commented 7 years ago

直播自己去研究websocket然后send,参考

kore-tao commented 7 years ago

websocket我会用,我意思是这个插件(video)不支持直播的流媒体的吧,类似于m3u8或flv的流媒体

esterTion commented 7 years ago

这个组件是弹幕管理器,不是视频播放器,要搞清楚关系 弹幕播放器可以分为弹幕管理器,播放器界面,播放器内核(mp4的话就是浏览器了)

kore-tao commented 7 years ago

好吧,最近碰到一个问题,找了一个video.js播放m3u8的直播流媒体,弹幕是写出来了,就是一横屏,video全屏后会把弹幕给覆盖掉,不全屏弹幕就好好的,我加z-index什么的都没用,横屏的时候直接被注释掉,很烦,不知道哪的问题!

esterTion commented 7 years ago

应该是弹幕node没包含在全屏范围内,把包含video和弹幕节点的播放器整体一起requestFullscreen

kore-tao commented 7 years ago

你意思是弹幕和video一起做横屏处理?

jabbany commented 5 years ago

整理一下Issue,增加一点历史文档:

现在B站已经全面转型 BAS 代码弹幕了(占用的是Mode=9)所以scripting似乎变成历史遗留系统了(CCL实现做得相对比较安全,现在觉得有点可惜)。

由于BAS有自己的库,所以CCL内不会单独支持。如果想用,可以参考 bilibili/bas 或者 hozuki/sebas。CCL的设计是可以支持第三方代码弹幕解析环境的(包括同时使用多个不同的代码运行时),详细参考文档。

CCL内代码环境 KagerouEngine 在未来将依然会收到更新(不过会一定程度放慢更新频率,比如近期规划内的通报机制改动会变成低优先度的)。同时,为了对应新的 BAS “语法” 是定义型语法,CCL将会更偏向支持功能更丰富的 GAS 格式。