diff --git a/src/components/VideoPlayer/index.vue b/src/components/VideoPlayer/index.vue index f998c4a6..c1a8fe05 100644 --- a/src/components/VideoPlayer/index.vue +++ b/src/components/VideoPlayer/index.vue @@ -456,6 +456,7 @@ export default { ...mapMutations({ SET_currentLang: 'video/SET_currentLang', SET_currentTime: 'video/SET_currentTime', + SET_selectableLang: 'video/SET_selectableLang', }), //当视频由于需要缓冲下一帧而停止,解决一直计时的问题 onWaiting(){ @@ -784,9 +785,37 @@ export default { // } // }, src: function () { - // 当视频地址变更时,重载视频 + // 当视频地址变更时,先重置字幕再重载视频 + this.isPlaying = false; + // 重置字幕相关状态 + this.SET_currentLang(''); + this.currentLangLabel = ''; + + // 移除所有现有字幕轨道元素 + Array.from(this.videoDom.querySelectorAll('track')).forEach(t => t.remove()); + + // 更彻底地清除字幕:重置所有textTracks + Array.from(this.videoDom.textTracks).forEach(track => { + track.mode = 'hidden'; + // 尝试移除所有cues(浏览器支持的话) + if (track.cues) { + while (track.cues.length > 0) { + track.cues.remove(0); + } + } + }); + + // 重载视频 this.videoDom.load(); - this.isPlaying = false + + // 如果有默认语言且支持AI翻译,重新设置字幕 + if (this.isAiTranslate && this.selectableLang && this.selectableLang.length > 0) { + // 找到默认语言或第一个可用语言 + const defaultLang = this.selectableLang.find(lang => lang.srclang === 'zh-CN') || this.selectableLang[0]; + if (defaultLang) { + this.changeLang(defaultLang); + } + } }, }, }; diff --git a/src/views/study/coursenew.vue b/src/views/study/coursenew.vue index 1c952d3d..69ac8bf7 100644 --- a/src/views/study/coursenew.vue +++ b/src/views/study/coursenew.vue @@ -1388,6 +1388,7 @@ export default { }, // ai播放器相关 - 视频处理 handleAIVideo(list = [], r) { + console.log('触发了-----------list', list); this.SET_selectableLang(list); this.SET_courseInfo(this.courseInfo); if (this.courseInfo.aiSet && this.courseInfo.aiAbstract == 1 && this.courseInfo.summaryContent) {