Fix cover disappear (fix #4197)

This commit is contained in:
the1812 2023-05-23 21:47:47 +08:00
parent 447cb3da7b
commit 165dc0feb7

View File

@ -1,33 +1,23 @@
import { defineComponentMetadata } from '@/components/define' import { defineComponentMetadata } from '@/components/define'
import { videoChange, VideoChangeCallback } from '@/core/observer' import { videoChange, VideoChangeCallback } from '@/core/observer'
import { createHook, isBwpVideo } from '@/core/utils' import { createHook } from '@/core/utils'
import { playerUrls } from '@/core/utils/urls' import { playerUrls } from '@/core/utils/urls'
const entry = async () => { const entry = async () => {
let lastAid: string let lastAid: string
const removeCover = () => document.documentElement.style.removeProperty('--cover-url') const removeCover = () => document.documentElement.style.removeProperty('--cover-url')
const videoPrototype = (await isBwpVideo()) ? BwpElement.prototype : HTMLVideoElement.prototype videoChange(() => {
// bpx player 改了 video.play(), hook 直接挂 HTMLVideoElement.prototype 上没效果 (#3698) console.debug('isBpxPlayer')
const bpxPlayer = dq('.bpx-player-video-wrap') const currentBpxVideo = dq('.bpx-player-video-wrap video') as HTMLVideoElement
const isBpxPlayer = Boolean(bpxPlayer) if (!currentBpxVideo) {
createHook(videoPrototype, 'play', () => { console.warn('bpx player not found')
removeCover() return
return true }
}) createHook(currentBpxVideo, 'play', () => {
if (isBpxPlayer) { removeCover()
videoChange(() => { return true
console.debug('isBpxPlayer')
const currentBpxVideo = dq('.bpx-player-video-wrap video') as HTMLVideoElement
if (!currentBpxVideo) {
console.warn('bpx player not found')
return
}
createHook(currentBpxVideo, 'play', () => {
removeCover()
return true
})
}) })
} })
const showCover: VideoChangeCallback = async ({ aid }) => { const showCover: VideoChangeCallback = async ({ aid }) => {
if (!aid) { if (!aid) {
console.warn('[播放前显示封面] 未找到av号') console.warn('[播放前显示封面] 未找到av号')