Skip to content

Conversation

@0Chencc
Copy link
Contributor

@0Chencc 0Chencc commented Nov 12, 2025

  1. 现在当用户点击开始观看时,会缓存选中源的剧集数量以及剧集名称,同时这是一个展开项,展开后可以选集播放,这也解决了需要每次查看最新集数的问题
  2. 基于此,我优化了剧集太多会过长的问题(例如火影忍者,名侦探柯南),我引入滑块机制,单剧集下最多显示50集,滑块每次显示50集
  3. 基于2,我将代码复用至播放时的播放列表功能。
    fix 选集列表增加滑动导航条 #1274
    下图展示
Screenshot 2025-11-13 at 00 04 04

现在可以在播放时设置弹幕播放速度是否跟视频倍速一致,也可以在设置-弹幕设置中管理,两个选项是同步的。
fix Predidit#1142
现在已经可以将番剧中标记为“抛弃”的番剧屏蔽,同时会即时将这个番剧移除出首页推荐以及时间表
1.将代码解耦,重构了大部分代码
2.回滚首页推荐页的“抛弃”番剧的屏蔽,已恢复原来的样式
3.将搜索与日期表的筛选器同步,
1.现在当用户点击开始观看时,会缓存选中源的剧集数量以及剧集名称
2.基于此,我优化了剧集太多会过长的问题(例如火影忍者,名侦探柯南),我引入滑块机制,单剧集下最多显示50集,滑块每次显示50集
3.基于2,我将代码复用至播放时的播放列表功能。
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个模块的职责有些不清晰,在 repositories 文件夹下的应该只是一些接口而不是包括大量复杂逻辑的UI组件

尝试把UI组件拆分到 /lib/bean 目录下

QueryManager({
required this.infoController,
});
IVideoSourceRepository? videoSourceRepository,
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

构造函数问题,我们从为传递过这些新的变量,要么保持使用 modular 进行注入,并在构造函数中移除它们。要么显式传递这些变量并使用 required 修饰它们


final InfoController infoController;
final PluginsController pluginsController = Modular.get<PluginsController>();
final PluginsController _pluginsController;
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

我理解使用下划线代表这是不应该被外部访问的私有变量

但是这个工程中的大部分地方没有遵循这一规范,所以移除这些下划线

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#1274 中提到的应该是指竖向的翻页进度条,就像 chrome 浏览器右侧那样

当前的用户交互非常奇怪,至少我从未见过这样的交互设计


@override
@action
void clearAllCache() {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

缓存退出方法似乎从未被调用,缓存永远不会失效

即使不考虑视频资源站点 URL 变更的问题,我们也需要缓存失效机制,来查看番剧的最新更新

这些缓存可以保留一段时间,但最长不应该超过1小时,或是随着 queryManager 的销毁立即销毁

@ErBWs
Copy link
Contributor

ErBWs commented Nov 13, 2025

这个放在进入视频前真的好看吗,感觉可以作为视频页面内的选集页面优化

另外这里用 Slider 感觉怪怪的,可以考虑使用类似 tab 的形式进行选择,支持横向滑动

@Predidit
Copy link
Owner

Predidit commented Nov 13, 2025

这里的UI确实值得商榷

slider 应该被移除,并且需要考虑一下移动设备上的布局,可能需要在移动设备上把 bottomSheet 调高一些

不过多重 tab 应该也不好看

@1312853182
Copy link
Contributor

如果只是想要跳转到某一集的位置为什么不在播放页加一个输入框直接输入呢?

@Predidit
Copy link
Owner

我考虑了一下,我赞同 @ErBWs 的观点

既然我们已经确认缓存需要尽快失效并且在很多情况下存在问题

我们似乎没有必要引入相关机制,并且这里的 UI 应该很难设计的好看,还让使用者在观看视频之前强制多了一次点击

@0Chencc
Copy link
Contributor Author

0Chencc commented Nov 13, 2025

我考虑了一下,我赞同 @ErBWs 的观点

既然我们已经确认缓存需要尽快失效并且在很多情况下存在问题

我们似乎没有必要引入相关机制,并且这里的 UI 应该很难设计的好看,还让使用者在观看视频之前强制多了一次点击

@ErBWs @Predidit 实际上我设计的逻辑是:优化用户第一次播放番剧的逻辑,可以通过事先选集的方式来“决定开始”,之后我打算优化追番功能,使用户在我的追番界面点击后以上次的默认源以及最后退出的位置开始播放。

在这样的考量下,我认为引入这样的UI设计逻辑是可以接受的,其他的代码问题我很快会修复。

如果只是想要跳转到某一集的位置为什么不在播放页加一个输入框直接输入呢?

对于这个思考,我认为设计出来的ui似乎会更加不好看?

@Predidit
Copy link
Owner

我在想办法解决新版本 flutter 破坏了 media-kit linux 硬件加速的 openGL 问题

我会在完成后尽快回到这个问题上

@0Chencc
Copy link
Contributor Author

0Chencc commented Nov 20, 2025

hi,现在我们要来继续讨论这个pr的可实现性吗?

@Predidit
Copy link
Owner

是的,我们可以讨论这个问题的可行性,flutter 3.38 的相关问题已经解决,并且我已经让 x11 上的硬件加速渲染见鬼去了 ^_^

我的意见和之前一致,主要问题是两方面

  1. 这让使用者在开始观看之前多了一次点击交互
  2. 这个面板在移动设备上体验不好,特别是它只占一半屏幕的时候

@0Chencc
Copy link
Contributor Author

0Chencc commented Nov 21, 2025

是的,我们可以讨论这个问题的可行性,flutter 3.38 的相关问题已经解决,并且我已经让 x11 上的硬件加速渲染见鬼去了 ^_^

我的意见和之前一致,主要问题是两方面

  1. 这让使用者在开始观看之前多了一次点击交互
  2. 这个面板在移动设备上体验不好,特别是它只占一半屏幕的时候

对于第一点,我的思考是这样,我自己平时看番比较多,并且也经常在kazumi上看。我发现有时候会出现一个问题是:默认打开最新一集,这个应该是流的问题,有的流会倒序加载。

在这个基础上,我思考了一下,也许我们可以暂时放弃这样激进的调整策略,而我进行一个新的pr,在加载流的时候进行一次倒序重新调整剧集的排序?

因为在倒序的情况下,实际上我遇到过很多次是点击下一集是变成从第六集跳到第五集。/(

@Predidit
Copy link
Owner

剧集的顺序问题很难处理,因为我们并不知道我们获取到的每剧的序号,我们获取的是字符串

我们本来就很难判断剧集是正序还是倒序,存在类似于 无修 HD 第0集 OVA1 这样的干扰

@1312853182
Copy link
Contributor

剧集的顺序问题很难处理,因为我们并不知道我们获取到的每剧的序号,我们获取的是字符串

我们本来就很难判断剧集是正序还是倒序,存在类似于 无修 HD 第0集 OVA1 这样的干扰
这块有个更简单的方法,我自己用的版本已经做了
我的想法是给规则加一个字段,让用户自己选择是否要在解析这个规则的剧集后把顺序翻转

如果需要我来做这个东西我可以提一个pr,但因为工作,会比较晚

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

选集列表增加滑动导航条

5 participants