MotooriKashin / Bilibili-Old

恢复旧版Bilibili页面,为了那些念旧的人。
MIT License
570 stars 38 forks source link

一些代码弹幕不能正常运行 #97

Closed Hibanaw closed 2 years ago

Hibanaw commented 3 years ago

av2239372 flash播放器无法运行代码弹幕,h5只可以运行视频结束处的Player.seek() 这个可以修吗👀

wly5556 commented 3 years ago

如果要运行代码弹幕,可能要用到acdown这样的本地播放器,而要在浏览器里再一次看到代码弹幕,或许真的很困难 我正好之前有稍微去了解过,下面开始杂七杂八的解释👀

flash播放器无法运行代码弹幕

本来flash播放器从b站的弹幕api获取到的弹幕,同时包含普通弹幕和代码弹幕 但之后弹幕服务器有过一次大升级,把代码弹幕从弹幕池抽离了出来,单独放到一个文件里 现在的h5播放器去加载弹幕,其实需要下载两种弹幕文件:包含普通弹幕的,包含代码/BAS弹幕的 而flash播放器现在就不能从服务器获取到代码弹幕了,而其实运行代码弹幕是没问题的 如果要从这个角度修复,大概需要在脚本里干预flash播放器的运行,或者直接修改它,看起来不是一般的困难

h5只可以运行视频结束处的Player.seek()

实际上代码弹幕基本上就是ecma-262 + flash图形api (ShapeContainer 等等) 所以直接用h5+js来运行代码弹幕也是可以的,而且也有人这么做了! 【Bulletproofdemo 基于webgl,性能很好,不过以顶点为基础的图形库不太适合搞2d渲染,为了画出复杂图形它还需要用专门的去进行三角剖分,而且显示的文字完全颠倒了过来什么鬼...更遗憾的是这个仓库3年没更新了 【CommentCoreLibrarydemo 基于svg,完成度要更高,效果很棒,离实现所有的效果还有一段距离,可以期待进一步开发

如果真要把代码弹幕放到浏览器上做出来,工作量非常巨大,本质上可以说这些厉害的开发者在浏览器上实现了一小部分的flash, 而这里不得不提到ruffle,这群人正在积极地开发一个完整的浏览器内flash播放器,进展很快 也许不久后真的能再次用浏览器看代码弹幕!

followmypeach commented 3 years ago

那么,flash播放器你们能不能改一下QAQ 让它能够接收新版弹幕

MotooriKashin commented 3 years ago

那么,flash播放器你们能不能改一下QAQ 让它能够接收新版弹幕

flash内容据我所知是无权由脚本进行处理的,所以应该办不到。
而且我对flash不熟,暂时也想不到处理办法。

wly5556 commented 3 years ago

卧槽,jpexs这东西实在牛逼,反编译播放器的代码的可读性非常高,还能够直接修改as3脚本然后回编译 图里是播放器载入弹幕的相关代码,接下来配合上ExternalInterface应该就能让flash播放器用上新版弹幕 J1%}F%3LI8XHDI~47SF47GD

Hibanaw commented 3 years ago

看起来哔哩哔哩没做混淆呀😆

wly5556 commented 3 years ago

看起来哔哩哔哩没做混淆呀😆

可喜可贺🤣

MotooriKashin commented 3 years ago

厉害👍

followmypeach commented 3 years ago

修复考古版flash播放器不是梦(

Hibanaw commented 3 years ago

修复考古版flash播放器不是梦(

但反编译商业软件应该是有争议的

wly5556 commented 3 years ago

昨晚用抓包软件替换swf,确实让图中那条hello world弹了出来 结果刚才试了试在脚本里替换url去托管swf,遇上了跨域限制,所有对api的访问都被拒绝了,可以说直接修改swf这条路走不通了 也许可以在as3里自编一个http请求类,用它全文替换URLRequest,把所有网络请求转发到js里,只是这巨大的工作量.....果然想想就得了

要看代码弹幕还是推荐acplay,具体使用可以看看这个帖子

不过翻代码看到些挺有意思的地方: 最新的flash播放器,即使换上了新版UI,直到停止维护前也没有用上新版弹幕,还是按照传统方式加载 甚至过了这么多年,最新的播放器还保留着从新浪 优酷 乐视载入视频的代码,还有载入acfun弹幕的代码也在

MotooriKashin commented 3 years ago

遇上了跨域限制,可以说直接修改swf这条路走不通了

的确只能想想,flash已经入土,即使付出了巨大工作量也觉得空虚。

最新的flash播放器,即使换上了新版UI,直到停止维护前也没有用上新版弹幕

只是因为flash死期将至,项目就只是维护而不添新吧,毕竟是无用功。

甚至过了这么多年,最新的播放器还保留着从新浪 优酷 乐视载入视频的代码,还有载入acfun弹幕的代码也在

想来那些代码现在也都过期了。

followmypeach commented 3 years ago

av734560可能是弹幕被吞(不大可能) 反正用acplay播放全黑屏(前面加载的部分有)

MotooriKashin commented 3 years ago

av734560可能是弹幕被吞(不大可能) 反正用acplay播放全黑屏(前面加载的部分有)

已经不再弹幕池里吧,在线播放器7:30后就没有弹幕了。