From 77b4a7050f198c0617f0fa022823e58638bc58fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E8=88=AA?= Date: Tue, 9 Dec 2025 08:45:37 +0800 Subject: [PATCH] =?UTF-8?q?fix=20:=20=E5=A3=B0=E9=9F=B3=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/sparring/components/question.vue | 43 ++++++++++++++++------ 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/src/pages/sparring/components/question.vue b/src/pages/sparring/components/question.vue index c6d236b9..7ced6086 100644 --- a/src/pages/sparring/components/question.vue +++ b/src/pages/sparring/components/question.vue @@ -13,7 +13,7 @@ - + { pauseVoice() }) + // 重播 + const restartPlay = () => { + if (itemVoice.value) { + emit('changePlay', ''); + emit('changePlay', unref(dataInfo)?.id); + setTimeout(() => { + talkUserVoiceObj.value.src = itemVoice.value; + talkUserVoiceObj.value.seek(0); + talkUserVoiceObj.value.play(); + }, 100); + } else { + playVoice(); + } + }; const pauseVoice = () => { if (!talkUserVoiceObj.value) return talkUserVoiceObj.value.pause() @@ -92,7 +106,13 @@ } const playVoice = () => { emit('changePlay', unref(dataInfo)?.id) + if(isTesting.value){ + talkUserVoiceObj.value.volume = 1 + restartPlay() + return + } if (talkUserVoiceObj.value && talkUserVoiceObj.value.src) { + talkUserVoiceObj.value.volume = 1 setTimeout(() => { talkUserVoiceObj.value.src = itemVoice.value talkUserVoiceObj.value.play() @@ -101,6 +121,7 @@ return } else { talkUserVoiceObj.value.src = '' + talkUserVoiceObj.value.volume = 1 if (unref(dataInfo).talkingVoice) { setTimeout(() => { talkUserVoiceObj.value.src = itemVoice.value @@ -140,12 +161,12 @@ talkUserVoiceObj.value.sessionCategory = 'soloAmbient' //#ifdef APP-PLUS // 安卓端 须播放一次,不然再次播放会没有声音 - // if (IsAndEnv) { - // isTesting.value = true - // talkUserVoiceObj.value.volume = 0 - // talkUserVoiceObj.value.play() - // // talkUserVoiceObj.value.pause() - // } + if (IsAndEnv) { + isTesting.value = true + talkUserVoiceObj.value.volume = 0 + talkUserVoiceObj.value.play() + // talkUserVoiceObj.value.pause() + } // #endif // setTimeout(() => { // setVoiceTime(0) @@ -153,16 +174,16 @@ } const isTesting = ref(false) const setVoiceTime = (sum) => { - sum += 1 + let _sum = sum + 1 if (Math.ceil(talkUserVoiceObj.value.duration) > 0) { voiceTime.value = (Math.ceil(talkUserVoiceObj.value.duration) || 1) + 's' } else { - if (sum === 20) { - voiceTime.value = (props.dataInfo.voiceTime|| 0) + 's' + if (_sum === 25) { + voiceTime.value = (props.dataInfo.voiceTime|| 1) + 's' return } setTimeout(() => { - setVoiceTime(sum) + setVoiceTime(_sum) }, 200) } }