mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
import { ComponentMetadata } from '@/components/types'
|
|
import { playerAgent } from '@/components/video/player-agent'
|
|
import { videoChange } from '@/core/observer'
|
|
import { allVideoUrls } from '@/core/utils/urls'
|
|
|
|
let playerAgentInstance
|
|
|
|
export const component: ComponentMetadata = {
|
|
name: 'playerAutoLight',
|
|
displayName: '播放时自动关灯',
|
|
urlInclude: allVideoUrls,
|
|
tags: [componentsTags.video],
|
|
description: {
|
|
'zh-CN': '在视频播放时自动关灯, 暂停或结束时再自动打开.',
|
|
},
|
|
entry: async () => {
|
|
const { isEmbeddedPlayer } = await import('@/core/utils')
|
|
const { lightOn, lightOff } = await import('@/components/video/player-light')
|
|
|
|
if (isEmbeddedPlayer()) {
|
|
return
|
|
}
|
|
|
|
videoChange(async () => {
|
|
if (playerAgentInstance != null) {
|
|
const oldVideo = await playerAgentInstance.query.video.element()
|
|
oldVideo.removeEventListener('ended', lightOn)
|
|
oldVideo.removeEventListener('pause', lightOn)
|
|
oldVideo.removeEventListener('play', lightOff)
|
|
}
|
|
|
|
playerAgentInstance = playerAgent
|
|
const video = await playerAgentInstance.query.video.element()
|
|
|
|
if (playerAgentInstance.isAutoPlay()) {
|
|
lightOff()
|
|
}
|
|
|
|
video.addEventListener('ended', lightOn)
|
|
video.addEventListener('pause', lightOn)
|
|
video.addEventListener('play', lightOff)
|
|
})
|
|
},
|
|
}
|