diff --git a/packages/core/src/components/zhs/StudySettingPanel.tsx b/packages/core/src/components/zhs/StudySettingPanel.tsx index da820f0e..59857ea7 100644 --- a/packages/core/src/components/zhs/StudySettingPanel.tsx +++ b/packages/core/src/components/zhs/StudySettingPanel.tsx @@ -1,6 +1,6 @@ -import { defineComponent } from 'vue'; +import { defineComponent, ref } from 'vue'; import { store } from '../../script'; -import { autoClose } from '../../script/zhs/study'; +import { autoClose, switchPlaybackRate } from '../../script/zhs/study'; import { Tooltip } from '../Tooltip'; export const StudySettingPanel = defineComponent({ @@ -10,6 +10,9 @@ export const StudySettingPanel = defineComponent({ closeDate.setMinutes(closeDate.getMinutes() + settings.watchTime * 60); settings.closeDate = closeDate; + // 切换倍速防抖 + const switching = ref(false); + return () => (
@@ -55,8 +58,10 @@ export const StudySettingPanel = defineComponent({
- +
@@ -70,8 +75,12 @@ export const StudySettingPanel = defineComponent({ max="1.5" min="1" value={settings.playbackRate} - onChange={(e: any) => { + disabled={switching.value} + onChange={async (e:any) => { + switching.value = true; settings.playbackRate = e.target.valueAsNumber; + await switchPlaybackRate(settings.playbackRate); + switching.value = false; }}>
diff --git a/packages/core/src/script/zhs/study.ts b/packages/core/src/script/zhs/study.ts index 65abbebb..a8b3c41c 100644 --- a/packages/core/src/script/zhs/study.ts +++ b/packages/core/src/script/zhs/study.ts @@ -66,7 +66,7 @@ export async function study(setting?: ScriptSettings['zhs']['video']) { * @returns */ export async function watch(setting?: Pick) { - const { volume = 0, playbackRate } = setting || {}; + const { volume = 0, playbackRate = 1 } = setting || {}; return new Promise((resolve, reject) => { try { const video = document.querySelector('video') as HTMLVideoElement; @@ -82,12 +82,7 @@ export async function watch(setting?: Pick