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 feature: danmaku for skip #46

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

lanytcc
Copy link

@lanytcc lanytcc commented Sep 27, 2024

  • 我同意我的所有贡献将以GPL-3.0协议开源。

#3 中功能的添加

现在有三个问题需要讨论和帮助:

  1. 函数调用位置及方式:目前我是塞在playListener,但是这样没办法做资源的释放
  2. checkDanmaku函数中调用skipToTime函数skippingSegments参数的填写,我为了测试随便填写的
  3. 与配置的联动,以及跟其他跳过手段的优先级等问题

简单在两个浏览器测试了一下,功能到是没什么问题,测试的视频

@hanydd
Copy link
Owner

hanydd commented Sep 30, 2024

试了一下,很强

  1. 放在setupVideoListeners()里面貌似就可以,playListener监听的是视频播放play事件
  2. 我的想法是不直接跳,而是打开一个提示框(类似于手动跳过,貌似是createSkipNotice());跳过之后给一个选项,可以打开提交框openSubmissionMenu(),里面自动填充刚刚跳过的时间。
  3. 肯定要判断一下是不是附近的时间里又类似的片段,比如如果10s以内有标记的片段的话就直接忽略;

可能略有一点复杂,但是手动跳过是肯定要的,要不然要被随机的弹幕跳来跳去了
有什么想法欢迎讨论(国庆有点忙,可能要假期结束我才能继续测试了)

@hanydd
Copy link
Owner

hanydd commented Sep 30, 2024

一个远大的想法是直接从接口获取全量的弹幕,综合多条弹幕提前通过一个算法计算出来片段的时间。比如“猝不及防”、“出发连招”、“空降xx:xx”、“封面在xx:xx”这种比较标志性的弹幕,可以结合到一起去判断时间。
可以全都在客户端完成,这样服务器也没压力

@lanytcc
Copy link
Author

lanytcc commented Oct 3, 2024

按照你的要求改了一下,目前实现的功能有:

  1. 正则匹配后弹窗
  2. 正则匹配后弹窗且自动跳过
  3. 正则匹配后弹出提交窗口
  4. 正则匹配后检查附近是否有已经提交的片段,如果有则不生效
  5. 修改正则表达式

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

Successfully merging this pull request may close these issues.

2 participants