热力上图功能BUG处理
This commit is contained in:
parent
c670c0d305
commit
1010549f04
|
|
@ -0,0 +1,70 @@
|
|||
<script setup>
|
||||
import { onMounted, onBeforeUnmount, watch } from "vue";
|
||||
|
||||
const props = defineProps({
|
||||
videoUrl: String
|
||||
});
|
||||
|
||||
const playerContainer = ref(null);
|
||||
const player = ref(null);
|
||||
|
||||
const initPlayer = () => {
|
||||
if (!props.videoUrl || !playerContainer.value) return;
|
||||
|
||||
// 彻底清理旧实例(关键修改)
|
||||
if (player.value) {
|
||||
player.value.JS_StopRealPlayAll();
|
||||
player.value.JS_Destroy();
|
||||
playerContainer.value.innerHTML = ""; // 清空容器
|
||||
}
|
||||
|
||||
// 重新创建容器(避免残留元素)
|
||||
const container = document.createElement("div");
|
||||
container.id = "player-container";
|
||||
container.style.width = "100%";
|
||||
container.style.height = "100%";
|
||||
playerContainer.value.appendChild(container);
|
||||
|
||||
// 初始化新实例
|
||||
player.value = new JSPlugin({
|
||||
szId: "player-container", // 必须与创建的容器ID一致
|
||||
szBasePath: "js/",
|
||||
openDebug: true,
|
||||
supportGMProtocol: true, // 启用国密协议支持
|
||||
iWidth:"100%",
|
||||
iHeight:"100%",
|
||||
});
|
||||
|
||||
player.value.JS_Play(props.videoUrl, {
|
||||
onError: (err) => console.error("播放失败:", err)
|
||||
});
|
||||
};
|
||||
|
||||
// 监听URL变化
|
||||
watch(() => props.videoUrl, initPlayer);
|
||||
|
||||
onMounted(initPlayer);
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
if (player.value) {
|
||||
player.value.JS_StopRealPlayAll();
|
||||
player.value.JS_Destroy();
|
||||
}
|
||||
if (playerContainer.value) {
|
||||
playerContainer.value.innerHTML = ""; // 确保清理
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<!-- 固定结构,不设ID -->
|
||||
<div ref="playerContainer" class="video-monitor-container"></div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.video-monitor-container {
|
||||
width: 95%;
|
||||
height: 100%;
|
||||
min-height: 500px; /* 防止折叠 */
|
||||
}
|
||||
</style>
|
||||
Loading…
Reference in New Issue