Commit cb184464 authored by 陈冲's avatar 陈冲

fix: 修复贺彩声重复播放

parent cfe3dcf5
......@@ -11,6 +11,7 @@ const applause = assetUrl('applause.mp3')
let backgroundMusic: HTMLAudioElement | null = null
let countdownTemplate: HTMLAudioElement | null = null
let pendingCountdownRetry: (() => void) | null = null
let applausePlayed = false
const countdownAudios = new Set<HTMLAudioElement>()
......@@ -62,19 +63,27 @@ function getBackgroundMusic(music: string, force: boolean = false, loop: boolean
//播放庆祝音乐
export async function playApplauseMusic() {
if (applausePlayed) return
const audio = getBackgroundMusic(applause, false, false)
audio.loop = false
try {
applausePlayed = true
await audio.play()
window.removeEventListener('pointerdown', playApplauseMusic)
window.removeEventListener('keydown', playApplauseMusic)
} catch {
applausePlayed = false
window.removeEventListener('pointerdown', playApplauseMusic)
window.removeEventListener('keydown', playApplauseMusic)
window.addEventListener('pointerdown', playApplauseMusic, { once: true })
window.addEventListener('keydown', playApplauseMusic, { once: true })
}
}
export function stopApplauseMusic() {
applausePlayed = false
window.removeEventListener('pointerdown', playApplauseMusic)
window.removeEventListener('keydown', playApplauseMusic)
// 只有当当前播放的是喝彩音乐时才暂停,避免误伤背景音乐
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment