From ebf9dd129ed150e2c9a176de849deca99fd542b9 Mon Sep 17 00:00:00 2001 From: xiaosi <2652281683@qq.com> Date: Wed, 2 Sep 2026 17:03:22 +0800 Subject: [PATCH] fix: clear media live session when leaving live tab MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Same-route tab switches do not unmount MediaView, so drop active play state, heartbeat, and viewer lease when leaving 直播中心. --- src/views/MediaView/MediaView.vue | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/views/MediaView/MediaView.vue b/src/views/MediaView/MediaView.vue index 5464b5a..82ac953 100644 --- a/src/views/MediaView/MediaView.vue +++ b/src/views/MediaView/MediaView.vue @@ -89,6 +89,7 @@ watch( (v) => { if (v) view.value = v } ) + function setView(v) { if (!v || route.query.view === v) return router.push({ name: 'media', query: { view: v } }) @@ -268,6 +269,18 @@ async function download(v) { } } +// 同路由 tab 切换不会卸载组件;离开直播中心时必须清播放态/心跳/viewer lease +watch(view, async (next, prev) => { + if (prev === 'live' && next !== 'live') { + openSeq += 1 + await closeActiveLive() + return + } + if (next === 'live' && prev && prev !== 'live') { + await load() + } +}) + onMounted(load) onBeforeUnmount(() => { openSeq += 1