@@ -406,7 +406,7 @@ const handleSee = async (row?: any) => {
|
|||||||
monitorVideoUrl.value = videosStore.hisUrl || '';
|
monitorVideoUrl.value = videosStore.hisUrl || '';
|
||||||
|
|
||||||
if (!monitorVideoUrl.value) {
|
if (!monitorVideoUrl.value) {
|
||||||
proxy?.$modal.msgWarning('该设备未登录或无法获取直播地址,已停止播放旧画面');
|
//proxy?.$modal.msgWarning('该设备未登录或无法获取直播地址,已停止播放旧画面');
|
||||||
initVideoResizeObserver();
|
initVideoResizeObserver();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -414,6 +414,7 @@ const handleSee = async (row?: any) => {
|
|||||||
// 等待 DOM 更新后初始化 Hls
|
// 等待 DOM 更新后初始化 Hls
|
||||||
await nextTick();
|
await nextTick();
|
||||||
initHls();
|
initHls();
|
||||||
|
// 等待视频加载完成后初始化 ResizeObserver,以便能正确获取视频尺寸
|
||||||
initVideoResizeObserver();
|
initVideoResizeObserver();
|
||||||
|
|
||||||
// 如果有 drawArea,直接使用它显示矩形区域,不允许点击绘制
|
// 如果有 drawArea,直接使用它显示矩形区域,不允许点击绘制
|
||||||
@@ -499,14 +500,14 @@ const displayDrawArea = (drawArea: any, video: HTMLVideoElement) => {
|
|||||||
|
|
||||||
console.log('[查看监控] 已加载已有报警区域', payload.value);
|
console.log('[查看监控] 已加载已有报警区域', payload.value);
|
||||||
};
|
};
|
||||||
|
// 在窗口调整大小时更新绘制区域位置和大小
|
||||||
const updateDrawAreaOnResize = () => {
|
const updateDrawAreaOnResize = () => {
|
||||||
const drawArea = currentDrawArea.value;
|
const drawArea = currentDrawArea.value;
|
||||||
const video = monitorVideoRef.value;
|
const video = monitorVideoRef.value;
|
||||||
if (!drawArea || !video || video.videoWidth <= 0 || video.videoHeight <= 0) return;
|
if (!drawArea || !video || video.videoWidth <= 0 || video.videoHeight <= 0) return;
|
||||||
displayDrawArea(drawArea, video);
|
displayDrawArea(drawArea, video);
|
||||||
};
|
};
|
||||||
|
// 初始化 ResizeObserver 监听视频元素尺寸变化,以便在窗口调整大小时更新绘制区域位置和大小
|
||||||
const initVideoResizeObserver = () => {
|
const initVideoResizeObserver = () => {
|
||||||
if (!window.ResizeObserver || videoResizeObserver.value) return;
|
if (!window.ResizeObserver || videoResizeObserver.value) return;
|
||||||
const video = monitorVideoRef.value;
|
const video = monitorVideoRef.value;
|
||||||
@@ -516,7 +517,7 @@ const initVideoResizeObserver = () => {
|
|||||||
});
|
});
|
||||||
videoResizeObserver.value.observe(video);
|
videoResizeObserver.value.observe(video);
|
||||||
};
|
};
|
||||||
|
// 销毁 ResizeObserver
|
||||||
const destroyVideoResizeObserver = () => {
|
const destroyVideoResizeObserver = () => {
|
||||||
if (videoResizeObserver.value) {
|
if (videoResizeObserver.value) {
|
||||||
videoResizeObserver.value.disconnect();
|
videoResizeObserver.value.disconnect();
|
||||||
|
|||||||
Reference in New Issue
Block a user