diff --git a/registry/lib/components/utils/keymap/settings/KeymapSettingsRow.vue b/registry/lib/components/utils/keymap/settings/KeymapSettingsRow.vue index 97f9e8309..1a553e678 100644 --- a/registry/lib/components/utils/keymap/settings/KeymapSettingsRow.vue +++ b/registry/lib/components/utils/keymap/settings/KeymapSettingsRow.vue @@ -4,7 +4,7 @@ {{ row.displayName }}
+
{ + addData('keymap.actions', (actions: Record) => { + actions.togglePlayerLight = { + displayName: '开关灯', + run: async () => { + toggleLight() + }, + } + }) + addData('keymap.presets', (presetBase: Record) => { + presetBase.togglePlayerLight = 'shift l' + }) + }, +} diff --git a/src/components/video/player-agent/base.ts b/src/components/video/player-agent/base.ts index 7286e4036..e24264fb4 100644 --- a/src/components/video/player-agent/base.ts +++ b/src/components/video/player-agent/base.ts @@ -70,8 +70,13 @@ export abstract class PlayerAgent { } /** true 开灯,false 关灯 */ - async toggleLight(on: boolean) { + async toggleLight(on?: boolean) { const checkbox = (await this.query.control.settings.lightOff()) as HTMLInputElement + // 无指定参数, 直接 toggle + if (on === undefined) { + checkbox.click() + return + } // 关灯状态 && 要开灯 -> 开灯 checkbox.checked && on && checkbox.click() // 开灯状态 && 要关灯 -> 关灯 diff --git a/src/components/video/player-light.ts b/src/components/video/player-light.ts index f5f07106c..91a164ada 100644 --- a/src/components/video/player-light.ts +++ b/src/components/video/player-light.ts @@ -5,7 +5,7 @@ import { playerAgent } from './player-agent' // let initialized = false -const setLight = (on: boolean) => { +const setLight = (on?: boolean) => { if (!playerUrls.some(url => matchUrlPattern(url))) { return none } @@ -27,3 +27,4 @@ const setLight = (on: boolean) => { export const lightOn = setLight(true) export const lightOff = setLight(false) +export const toggleLight = setLight()