为「默认播放速度」提供黑名单功能 #1315
Replies: 2 comments 8 replies
-
这个已经在计划修复了 黑名单你可以弄个 PR 玩玩, 做起来应该也不难, 不过这个是细分到分P还是整个视频 (或者说存 aid 还是 cid)? |
Beta Was this translation helpful? Give feedback.
-
本来想着可能有暴露出来的接口,事实上也确实是有,但就是没有控制倍数的接口,能完全控制播放器的这个对象并没有被暴露出来。 直接调用接口去解决问题是不行了,而且通过读源码我还发现调整倍数除了播放器的界面上元素的更新,事实上会影响弹幕的播放速度: $(i).on('ratechange', (function (e) {
a.danmaku && a.danmaku.option && a.danmaku.option('videospeed', i.playbackRate || 1),
a.advDanmaku && a.advDanmaku.option && a.advDanmaku.option('videospeed', i.playbackRate || 1)
})), 想要修改 B 站存储的播放倍数也不可能,因为默认情况下这个值被放在了 sessionStorage 中,不说其它的问题,如果修改了这个值,理论上刷新页面也是会生效的,但是,我不明白 B 站程序员为什么要在 unload 的时候把倍数重置: this.player.window.onunload = function () {
u.setSession('video_status', 'videospeed', ''),
u.setSession('video_status', 'videomirror', ''),
u.setSession('video_status', 'videosize', '')
}, 综上所述,目前想要完美实现默认播放倍数设定的话,必须解决以下问题:
看起来事情没想象中那么简单。。。最困难的就是控制弹幕播放速度,这个应该也是没有暴露接口的,好在弹幕出现是按照时间点来的,就算弹幕滚动的速度不变,强行调整视频播放速度也没有太大影响。 理论上来说,可以通过触发倍数菜单上绑定的点击事件来完成界面更新和弹幕播放速度控制,但是通过快捷键设置的倍数将突破加速上限(2.0x),而且也是直接控制的 playbackRate,因此下面这部分代码也得更新: // src/video/keymap.ts
const playbackRates = [0.5, 0.75, 1.0, 1.25, 1.5, 2.0, 2.5, 3.0]
let preventDefault = true
if (key === '>' || key === 'ArrowUp'.toLowerCase()) { // 天堂制造
video.playbackRate = playbackRates.find(it => it > video.playbackRate) || playbackRates[playbackRates.length - 1]
showPlaybackTip(video.playbackRate)
} else if (key === '<' || key === 'ArrowDown'.toLowerCase()) { // 时间减速
video.playbackRate = [...playbackRates].reverse().find(it => it < video.playbackRate) || playbackRates[0]
showPlaybackTip(video.playbackRate)
} else if (key === '?') { // 重置速度
video.playbackRate = 1
showPlaybackTip(video.playbackRate)
} else if (key === 'w') { // 稍后再看
const watchlater = dq('.video-toolbar .ops .watchlater, .more-ops-list .ops-watch-later, .video-toolbar-module .see-later-box') as HTMLElement
if (watchlater !== null) {
watchlater.click() |
Beta Was this translation helpful? Give feedback.
-
大多数情况下,默认播放速度调高一点会很不错,但是如果是用来听音乐,听鬼畜,就不太合适了,每次都得手动重设回默认速度,而且播放器里的倍数状态和脚本的设定的倍数并不同步,每次还得点一下别的倍数再调回 1.0x
建议对于视频页添加一个附加功能的按钮(只在启用了「默认播放速度」这个功能时显示),可以用于切换对此视频的默认倍数的应用状态(也就是将此视频设置到「默认播放速度」的黑名单中,或从黑名单中移除)。
Beta Was this translation helpful? Give feedback.
All reactions