diff --git a/src/pages/course/components/talkingItem.vue b/src/pages/course/components/talkingItem.vue index f5f1a5b1..7a84a470 100644 --- a/src/pages/course/components/talkingItem.vue +++ b/src/pages/course/components/talkingItem.vue @@ -466,12 +466,10 @@ pauseVoice(); }); let prevTime = -1; - let activeTime = -1; talkVoiceObj.value.onEnded(() => { console.log('onEnded'); emit('changePlay', ''); prevTime = -1; - activeTime = -1; talkVoiceObj.value.src = ''; }); talkVoiceObj.value.onStop(() => { diff --git a/src/pages/courseRecord/components/esQuestion.vue b/src/pages/courseRecord/components/esQuestion.vue index f62e5503..98f20e73 100644 --- a/src/pages/courseRecord/components/esQuestion.vue +++ b/src/pages/courseRecord/components/esQuestion.vue @@ -6,7 +6,8 @@ 你的答案: - + @@ -37,17 +38,25 @@ talkingVoice: '' }), type: Object + }, + activeVoiceId: { + default: '', + type: String } }); const { - dataInfo + dataInfo, + activeVoiceId } = toRefs(props); const intrctWay = computed(() => { - console.log('props.intrctWay', props.intrctWay); return props.intrctWay; }); const emit = defineEmits(['changePlay', 'buutton_click']); + const changePlay = (val) => { + console.log('esq') + emit('changePlay', val) + } watch( () => props.dataInfo, () => {}, { @@ -57,7 +66,7 @@ ); const initData = (item) => { return { - + } } // 声音播放初始化 @@ -74,81 +83,11 @@ const showContent = computed(() => { return props.text || props.dataInfo.anserResult || ''; }); - onMounted(() => { - initVoice(); - }); - onUnload(() => { - pauseVoice(); - }); - watch( - () => props.dataInfo.talkingVoice, - (val) => { - if (val) { - initVoice(); - } - }, { - deep: true, - immediate: true - } - ); // 按钮点击 const buutton_click = (type) => { emit('buutton_click', type, props.dataInfo); }; - const pauseVoice = () => { - if (!talkVoiceObj.value) return; - talkVoiceObj.value.pause(); - isPlaying.value = false; - emit('changePlay', ''); - }; - const playVoice = () => { - emit('changePlay', unref(dataInfo)?.id); - if (talkVoiceObj.value && talkVoiceObj.value.src) { - talkVoiceObj.value.play(); - return; - } else { - talkVoiceObj.value.src = ''; - if (unref(dataInfo).talkingVoice) { - setTimeout(() => { - talkVoiceObj.value.src = unref(dataInfo).talkingVoice; - talkVoiceObj.value.play(); - isPlaying.value = true; - }, 100); - } - } - }; - const initVoice = () => { - talkVoiceObj.value = uni.createInnerAudioContext(); - talkVoiceObj.value.onEnded(() => { - emit('changePlay', ''); - talkVoiceObj.value.src = ''; - }); - talkVoiceObj.value.onError(() => { - talkVoiceObj.value.src = ''; - }); - if (unref(dataInfo).intrctWay === '02') { - itemVoice.value = unref(dataInfo).talkingVoice; - talkVoiceObj.value.src = itemVoice.value; - setTimeout(() => { - setVoiceTime(0); - }, 100); - } - }; - const setVoiceTime = (sum) => { - sum += 1; - if (Math.ceil(talkVoiceObj.value.duration) > 0) { - voiceTime.value = (Math.ceil(talkVoiceObj.value.duration) || 1) + 's'; - } else { - if (sum === 20) { - voiceTime.value = 0 + 's'; - return; - } - setTimeout(() => { - setVoiceTime(sum); - }, 200); - } - }; \ No newline at end of file diff --git a/src/pages/courseRecord/components/esQuestionAnswer.vue b/src/pages/courseRecord/components/esQuestionAnswer.vue index 86770318..e16214e9 100644 --- a/src/pages/courseRecord/components/esQuestionAnswer.vue +++ b/src/pages/courseRecord/components/esQuestionAnswer.vue @@ -1,6 +1,6 @@