Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add forward feature #523

Merged
merged 4 commits into from
Dec 27, 2024
Merged

add forward feature #523

merged 4 commits into from
Dec 27, 2024

Conversation

xxfttkx
Copy link
Contributor

@xxfttkx xxfttkx commented Dec 27, 2024

增加了快进80s的功能,跳过op和ed用的。
类似 #422 #218
image

长按按钮可自定义秒数
image
然而目前有个问题。我的想法是这个秒数的设定应该跟随番剧,所以无需本地存储,只需设一次,后面就能快进自己想要的秒数。当换到别的番剧时又重置为80s。

但这个秒数跟随ProgressBar定义在PlayerItem中,如果想让后续观看该番剧的别的集数时共享这个设置,需在changeEpisode传出又在new PlayerItem时传入,过于麻烦,且感觉有点不清晰。

所以问题是,是否有这么修改的必要,PlayerItem为什么不能一直存在。或者寻找别的解决办法,例如设置过的值存起来跟随番剧呢?

@Predidit
Copy link
Owner

PlayerItem不能一直存在是早期的设计。当时 webview 和 fvp 在 windows 上有纹理冲突,也就是两者叠加绘制时会发生闪烁,所以页面上两者避免同时存在。这导致 Player item 的周期性销毁。

理论上我现在可以不销毁 playerItem,因为已经迁移到 media-kit 。但现在的大量播放器功能是建立在 PlayerItem 会周期性销毁的前提下的,我们最好不要改动这个设计。

由于以上的问题,我对新的快进功能是否有必要存在持保留态度。

@xxfttkx
Copy link
Contributor Author

xxfttkx commented Dec 27, 2024

我是觉得有个快进80s足够支撑跳过多数的op和ed了,今天看番也是拖的时候感觉不太方便

@Predidit
Copy link
Owner

可以考虑换个 Icon 这个图标太丑了

@xxfttkx
Copy link
Contributor Author

xxfttkx commented Dec 27, 2024

https://fluttericon.cn/

我也不会挑UI,这里面随便找了个还算顺眼的

@Predidit
Copy link
Owner

我觉得fastforward不错

@ErBWs
Copy link
Contributor

ErBWs commented Dec 27, 2024

其实可以自己画一个 forward_80,类似 forward_30 那样的

@Predidit
Copy link
Owner

话说 isInt 这种工具函数真的有存在的必要吗

@xxfttkx
Copy link
Contributor Author

xxfttkx commented Dec 27, 2024

那现在不需要手动修改跳过秒数这种操作吗。

@xxfttkx
Copy link
Contributor Author

xxfttkx commented Dec 27, 2024

话说 isInt 这种工具函数真的有存在的必要吗

可以替换成int.tryparse(input)!=null,我感觉这样有点难看

@Predidit
Copy link
Owner

其他地方也是那么做的,例如分集评论的切换。

一句话的工具函数还是不要了吧。

@xxfttkx
Copy link
Contributor Author

xxfttkx commented Dec 27, 2024

ok,那我删了,现在问题是要能手动改时间的吗,要改changeEpisode

@Predidit
Copy link
Owner

不用,那样感觉耦合度太高了,一定要保存的话为什么不存 playerController 里面呢

以及图标换成 fast_forward

@xxfttkx
Copy link
Contributor Author

xxfttkx commented Dec 27, 2024

行,我都忘了playerController..

那我改改存playerController里

@ErBWs
Copy link
Contributor

ErBWs commented Dec 27, 2024

forward_80

IconButton(
  onPressed: () async {
    await playerController
        .seek(playerController.currentPosition + const Duration(seconds: 80));
  },
  icon: Image.asset(
    'assets/images/forward_80.png',
    color: Colors.white,
    height: 24,
  ),
),
image

@xxfttkx
Copy link
Contributor Author

xxfttkx commented Dec 27, 2024

forward_80

IconButton(
  onPressed: () async {
    await playerController
        .seek(playerController.currentPosition + const Duration(seconds: 80));
  },
  icon: Image.asset(
    'assets/images/forward_80.png',
    color: Colors.white,
    height: 24,
  ),
),
image

不用这个吧,现在时间是能改动的,不一定是80s

@Predidit
Copy link
Owner

@ErBWs

这个看上去很棒,不过考虑到这个PR里 forward time 是可变的,也许使用 fast_forward就可以了?

这个图标也许可以用在其他地方

@ErBWs
Copy link
Contributor

ErBWs commented Dec 27, 2024

另外 textfield 可以直接设置为只允许数字输入的

@xxfttkx
Copy link
Contributor Author

xxfttkx commented Dec 27, 2024

@ErBWs
@Predidit
我没注意到playerController有seek,和现在progressBar比起来似乎该用playerController的,progressBar也不用保存了

textfield我也再看看

@ErBWs
Copy link
Contributor

ErBWs commented Dec 27, 2024

@ErBWs

这个看上去很棒,不过考虑到这个PR里 forward time 是可变的,也许使用 fast_forward就可以了?

这个图标也许可以用在其他地方

fastfoward 虽说没啥问题不过我怀疑更多人看到第一反应不知道是做什么的,有个数字显示更能代表这个图标的含义

其实我觉得直接固定 85,多了少了再自己拖就是了(

@xxfttkx
Copy link
Contributor Author

xxfttkx commented Dec 27, 2024

@ErBWs 有的番会少很多,可能只有30s的op这样,所以想可以改

@ErBWs
Copy link
Contributor

ErBWs commented Dec 27, 2024

那不妨用 forward_media 做图标

@xxfttkx 或者用 forward_80作为默认,添加tooltip 提示可以长按修改时间

@xxfttkx
Copy link
Contributor Author

xxfttkx commented Dec 27, 2024

那不妨用 forward_media 做图标

@xxfttkx 或者用 forward_80作为默认,添加tooltip 提示可以长按修改时间

@ErBWs
我来研究下,那修改后图标要改变吗

@Predidit
Copy link
Owner

添加 tooltip 是个好主意,不过有 forward_media 这个图标吗

@ErBWs
Copy link
Contributor

ErBWs commented Dec 27, 2024

添加 tooltip 是个好主意,不过有 forward_media 这个图标吗

谷歌 material icon 里面有,我不确定 flutter 有没有

我有点想试试利用这个 icon 与 text 叠加来做到实时变化的icon,我尝试一下

@Predidit Predidit merged commit 2221f96 into Predidit:main Dec 27, 2024
5 checks passed
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.

3 participants