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