fix(default-video-speed): 以触发点击事件的方式实现倍数切换

This commit is contained in:
jloeve 2020-12-16 12:42:38 +08:00
parent bd5f845719
commit e935975d2b

View File

@ -1,21 +1,15 @@
const indexOfCurrentAid = () => settings.defaultVideoSpeedBlacklist.indexOf(unsafeWindow.aid as string)
const getNativeDefaultPlaySpeed = () => {
const nativeDefaultPlaySpeed = (() => {
try {
return parseFloat(JSON.parse(sessionStorage.getItem("bilibili_player_settings") as string).video_status.videospeed || 1)
} catch {
return 1
}
}
})()
const setPlaybackRate = async (speed: number) => {
const video = await SpinQuery.select('.bilibili-player-video video') as HTMLVideoElement
video.playbackRate = speed
SpinQuery.condition(
() => video,
() => video.playbackRate !== speed,
() => video.playbackRate = speed
)
(await SpinQuery.select(`.bilibili-player-video-btn-speed-menu .bilibili-player-video-btn-speed-menu-list[data-value="${speed}"]`))?.click()
}
const updateWidget = (button: HTMLButtonElement, icon: HTMLElement, label: HTMLSpanElement, state: boolean) => {
@ -76,7 +70,7 @@ export default {
await setPlaybackRate(parseFloat(settings.defaultVideoSpeed))
} else {
settings.defaultVideoSpeedBlacklist.push(unsafeWindow.aid)
await setPlaybackRate(getNativeDefaultPlaySpeed())
await setPlaybackRate(nativeDefaultPlaySpeed)
}
settings.defaultVideoSpeedBlacklist = settings.defaultVideoSpeedBlacklist
updateWidget(button, icon, label, !state)