feat: 添加弹幕列表面板#1964
Conversation
|
我还没来得及仔细查看这个PR的代码 不过我注意到竖屏状态下的弹幕发送条被删除了,这基于什么考虑。还是只是AI的工作失误。 |
因为位置不够溢出了 |
|
如果这是你的有意的设计和取舍,这个功能被移除应该出现在这个PR的描述中 而且这是一个有用的功能,可以改变它的位置,但不应该被删除 也许我们可以考虑把弹幕面板挪到一个 bottomsheet 中 |
|
我的意思是,也许可以尝试把本pr实现的弹幕面板移动到bottomsheet中,而不是移动位置已经很好地弹幕发送文本框 |
|
差不多,但是弹幕按钮的位置需要调整 此外此pr使用了一些硬编码色彩,这是需要避免的,使用 colorsheme 中的色彩,这样才能正确适配主题 可以考虑其他ai工作流,即使只考虑 coding plan,也可以试试其他模型,现在的工作流生成的模式需要的返工和审查次数实在是太多了,大家的心智负担都很高 |
我在这方面没有什么头绪,先推送了
指的是弹幕面板中的来源品牌色吗
当前套餐里最强的就这个了。。。 我换个工具试试 |
|
是的,指来源品牌色 |
但是正因为是品牌色才会硬编码啊 |
|
但是我们并不能做到良好的设计,无法做到使其在亮色与暗色模式均不突兀,在这种考虑下使用 colorsheme 明显更好 |
|
这个视觉效果好多了,如果你觉得三种颜色间缺乏区分度,可以尝试 colorsheme 中其他颜色 弹幕列表中的弹幕没有必要按照原样渲染,这样视觉效果很突兀,使用简单的文本就好,bilibili就是这样设计的 |
This comment was marked as outdated.
This comment was marked as outdated.
done,ci怎么炸了 |
|
弹幕来源判断有点问题 |
dandanplay 似乎不会区分来源了 |
|
我们可以最终完成这个PR,不过如果以后新的PR还是基于 GLM5 构建,那么我就不能进行审查了,可以考虑拜托其他贡献者审查 审查 GLM5 的 PR 的心智负担实在太高了,作为作者的你也需要多次返工,大家的精力都被严重消耗了 |
换成 Gemini 了,实在抱歉 |
|
现在样板代码有些太多了,考虑复用 lib\modules\danmaku\danmaku_module.dart 实体类 必要的话可修改此实体类,例如将 souce 属性变为 enum ,但是需要适配之前使用此实体类的相关代码 |
This comment was marked as resolved.
This comment was marked as resolved.
|
添加了一个关于性能的评论,此外我有一个小问题,现在弹幕面板过滤弹幕只会在面板生效,不会影响当前剧集弹幕上屏 但是同时,在弹幕面板过滤弹幕的开关是持久化的,这种开关会在下一个播放器初始化,例如切换到下一集时让对应被筛选的弹幕不再上屏 这个行为是否符合预期 |
|
mobx 还是一团乱麻, ai 无法做到重写这部分吗 |
大概是的,换了几个模型都无法做到,可能需要介入 |
|
维持这个PR在当前位置, 稍后我来调试 |
|
一直是 hive 社区版, 我只是重新运行了一下 build_runner 不需要的逻辑基本删光了, 舒服多了 flutter devtools 显示卡顿的原因是乱七八糟的 mobx 导致的重建, 而不是需要分页加载, 所以分页加载逻辑也删掉了 还有一些小问题, 例如更换分集时弹幕面板内容不会清空, 直到下集加载完成, 你要是有兴趣的话可以修一下, 要是没兴趣的话, 我明天或者后天修 |
|
这就是低性能AI的问题, 它的功能可能看上去没错, 但是实际有性能问题, 代码冗余和设计上的反模式 |
|
|
|
5ec4bef 仅从代码上来看应该是个无效的提交,对解决上面我提到的问题应该没有帮助,不过我没有实际测试 如果你对解决这个问题没有什么头绪,我会在周末提交解决方案然后合并这个PR |
我测试过换集是会清空弹幕列表并重新加载 |
|
我指的是当画面是 视频解析中 时,弹幕面板就应该清空,而不是实际上加载下一个视频时清空 |
|
调试过程中遇到一些困难,使用发行版也会有这个问题 |
This comment was marked as low quality.
This comment was marked as low quality.
|
我们的仓库里公开的用于调试 API key 被拉黑了 我会发一封邮件询问相关情况,如果是因为被滥用在其他项目而拉黑,大概是不能得到更换的,因为这意味着本项目的公开的测试 key 已经被盯上,更换没有止境 |
sad |
但是为什么发行版也会有这个问题 |
该问题似乎仍然没有解决,此 PR 貌似停在这里了 |
|
我已经拿到了测试用的 key ,不过我现在在考虑此功能的必要性,我们现在已经不能区分不同来源的弹幕了 |
仅仅作为一个弹幕列表?就像 B 站网页端那样 |
| } | ||
|
|
||
| class _DanmakuListPanelState extends State<DanmakuListPanel> { | ||
| final PlayerController playerController = Modular.get<PlayerController>(); |
There was a problem hiding this comment.
不应该在 State 字段初始化时直接执行 Modular.get()
这是最近刚修复的竞态问题,在其他页面可以这样做,但是播放器页面的生命周期高度复杂且耦合,这样做特定情况下可能导致崩溃
参考现有代码明确把 PlayerController 延后到首帧后加载,并捕获失败
Kazumi/lib/pages/video/video_page.dart
Lines 97 to 116 in 7d12111




What's Changed:
TODO:
由 LLM 修改