diff --git a/src/views/PBL/TVScreen/components/BoardTable.vue b/src/views/PBL/TVScreen/components/BoardTable.vue index 83d60a5..ea017dc 100644 --- a/src/views/PBL/TVScreen/components/BoardTable.vue +++ b/src/views/PBL/TVScreen/components/BoardTable.vue @@ -1,19 +1,24 @@ diff --git a/src/views/PBL/TVScreen/index.vue b/src/views/PBL/TVScreen/index.vue index fda3c64..0cc8e57 100644 --- a/src/views/PBL/TVScreen/index.vue +++ b/src/views/PBL/TVScreen/index.vue @@ -201,9 +201,29 @@ onMounted(() => { // 播放音频 const audioSource = '@/assets/voice/test.wav' const audioPlayer = ref(null) - +let isAudioWait = ref(false) +let endTimeDelayId = null function loadAudio() { - audioPlayer.value.src = new URL(audioSource, import.meta.url).href + if (audioPlayer.value) { + audioPlayer.value.src = new URL(audioSource, import.meta.url).href + } +} +function playAudio() { + if (!isAudioWait.value) { + isAudioWait.value = true + audioPlayer.value.play().catch((error) => { + console.error('播放音频时发生错误:', error) + isAudioWait.value = false + }) + audioPlayer.value.addEventListener('ended', onEnded) + } +} +function onEnded() { + audioPlayer.value.removeEventListener('ended', onEnded) + // 自动定时延迟 1分钟 + endTimeDelayId = setTimeout(() => { + isAudioWait.value = false + }, 1000 * 60 * 1) } onMounted(loadAudio)