diff --git a/.env.development b/.env.development index a63bf94..fafb053 100644 --- a/.env.development +++ b/.env.development @@ -1,9 +1,12 @@ VITE_BASE=/ # VITE_BASE_URL=http://192.168.0.25:8095/ -VITE_BASE_URL=http://192.168.0.37:8095/ +VITE_BASE_URL=http://192.168.4.40:8095/ #websocket t掉线 -VITE_ON_LINE_WEB_SOCKET_URL=ws://192.168.0.37:8869 +VITE_ON_LINE_WEB_SOCKET_URL=ws://192.168.4.40:8869 #websocket 在线学习 -VITE_LEARNING_WEB_SOCKET_URL=ws://192.168.0.37:8899 +VITE_LEARNING_WEB_SOCKET_URL=ws://192.168.4.40:8899 + +#websocket 大华设备视频 +VITE_DAHUA_WEB_SOCKET_URL=ws://192.168.4.40:8866 diff --git a/.env.production b/.env.production index 6c5a399..4c20b0c 100644 --- a/.env.production +++ b/.env.production @@ -4,9 +4,12 @@ VITE_BASE_URL=http://172.16.70.226:8081/sx_yjb/ #VITE_BASE_URL=https://qaaqwh.qhdsafety.com/integrated_whb/ #websocket t掉线 -VITE_ON_LINE_WEB_SOCKET_URL=ws://183.251.104.38:10103 +VITE_ON_LINE_WEB_SOCKET_URL=ws://172.16.70.226:8869 # VITE_ON_LINE_WEB_SOCKET_URL=wss://qaaqwh.qhdsafety.com/disconnected/ #websocket 在线学习 -VITE_LEARNING_WEB_SOCKET_URL=ws://183.251.104.38:10102 +VITE_LEARNING_WEB_SOCKET_URL=ws://172.16.70.226:8899 #VITE_LEARNING_WEB_SOCKET_URL=wss://qaaqwh.qhdsafety.com/onlinelearning/ + +#websocket 大华设备视频 +VITE_DAHUA_WEB_SOCKET_URL=ws://172.16.70.226:8866 diff --git a/env.d.ts b/env.d.ts index b18e5ab..ffec46c 100644 --- a/env.d.ts +++ b/env.d.ts @@ -19,4 +19,8 @@ interface ImportMetaEnv { * websocket 在线学习 */ readonly VITE_LEARNING_WEB_SOCKET_URL: string + /** + * websocket 大华设备视频 + */ + readonly VITE_DAHUA_WEB_SOCKET_URL: string } diff --git a/package-lock.json b/package-lock.json index a741475..cba7e66 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,12 +20,14 @@ "dayjs": "^1.11.10", "echarts": "^5.4.3", "element-plus": "^2.6.1", + "flv.js": "^1.6.2", "hls.js": "^1.6.13", "html2canvas": "^1.4.1", "jspdf": "^2.5.1", "lodash-es": "^4.17.21", "mitt": "^3.0.1", "mp4box": "^0.5.2", + "mpegts.js": "^1.8.0", "nanoid": "^5.0.4", "normalize.css": "^8.0.1", "pako": "^2.1.0", @@ -3362,6 +3364,11 @@ "es6-symbol": "^3.1.1" } }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, "node_modules/es6-symbol": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", @@ -4110,6 +4117,15 @@ "dev": true, "license": "ISC" }, + "node_modules/flv.js": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/flv.js/-/flv.js-1.6.2.tgz", + "integrity": "sha512-xre4gUbX1MPtgQRKj2pxJENp/RnaHaxYvy3YToVVCrSmAWUu85b9mug6pTXF6zakUjNP2lFWZ1rkSX7gxhB/2A==", + "dependencies": { + "es6-promise": "^4.2.8", + "webworkify-webpack": "^2.1.5" + } + }, "node_modules/follow-redirects": { "version": "1.15.11", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", @@ -5445,6 +5461,15 @@ "integrity": "sha512-GcCH0fySxBurJtvr0dfhz0IxHZjc1RP+F+I8xw+LIwkU1a+7HJx8NCDiww1I5u4Hz6g4eR1JlGADEGJ9r4lSfA==", "license": "BSD-3-Clause" }, + "node_modules/mpegts.js": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/mpegts.js/-/mpegts.js-1.8.0.tgz", + "integrity": "sha512-ZtujqtmTjWgcDDkoOnLvrOKUTO/MKgLHM432zGDI8oPaJ0S+ebPxg1nEpDpLw6I7KmV/GZgUIrfbWi3qqEircg==", + "dependencies": { + "es6-promise": "^4.2.5", + "webworkify-webpack": "github:xqq/webworkify-webpack" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -7681,6 +7706,11 @@ "dev": true, "license": "MIT" }, + "node_modules/webworkify-webpack": { + "version": "2.1.5", + "resolved": "git+ssh://git@github.com/xqq/webworkify-webpack.git#24d1e719b4a6cac37a518b2bb10fe124527ef4ef", + "license": "MIT" + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/package.json b/package.json index 4110181..a7e4e70 100644 --- a/package.json +++ b/package.json @@ -22,12 +22,14 @@ "dayjs": "^1.11.10", "echarts": "^5.4.3", "element-plus": "^2.6.1", + "flv.js": "^1.6.2", "hls.js": "^1.6.13", "html2canvas": "^1.4.1", "jspdf": "^2.5.1", "lodash-es": "^4.17.21", "mitt": "^3.0.1", "mp4box": "^0.5.2", + "mpegts.js": "^1.8.0", "nanoid": "^5.0.4", "normalize.css": "^8.0.1", "pako": "^2.1.0", diff --git a/src/views/video_manager/video_manager/components/playVideo.vue b/src/views/video_manager/video_manager/components/playVideo.vue index 1d9cb79..339ab2c 100644 --- a/src/views/video_manager/video_manager/components/playVideo.vue +++ b/src/views/video_manager/video_manager/components/playVideo.vue @@ -1,5 +1,5 @@ - - - + \ No newline at end of file diff --git a/src/views/video_manager/video_manager/index.vue b/src/views/video_manager/video_manager/index.vue index 8823e61..533a6c6 100644 --- a/src/views/video_manager/video_manager/index.vue +++ b/src/views/video_manager/video_manager/index.vue @@ -18,9 +18,6 @@ 重置 - 播放后台转码视频 @@ -106,12 +103,11 @@ @get-data="fnResetPagination" /> - + @@ -130,8 +126,7 @@ import {ElMessage, ElMessageBox} from "element-plus"; import SelectingPoints from "./components/selecting_points.vue"; import LayoutVideo from "@/components/video/index.vue"; import {setVideoManagerList} from "@/request/eightwork_videomanager.js"; -import PlayVideo from "@/views/video_manager/video_manager/components/playVideo.vue"; // 引入新播放器组件 -import {startTransCode, stopTransCode} from "@/request/video_info.js"; // 转码接口 +import PlayVideo from "@/views/video_manager/video_manager/components/playVideo.vue"; // 引入大华播放器组件 const data = reactive({ addDialog: { @@ -155,42 +150,18 @@ const data = reactive({ videomanagerId: "", visible: false, }, - transcodeVideoDialog: { + dahuaVideoDialog: { visible: false, - src: "http://localhost:8100/api/hls/stream.m3u8", // 后端转码后HLS流的访问路径 id: "", + channel: 0 // 通道号 }, }); -// 启动转码并显示播放器 -const handleStartTranscode = async () => { - try { - await startTransCode(); // 调用后端“启动转码”接口 - data.transcodeVideoDialog.visible = true; // 显示播放器弹窗 - } catch (error) { - ElMessage.error("启动转码失败: " + (error.message || "未知错误")); - } -}; - -// 转码停止后的回调 -const onTranscodeStopped = async () => { - await stopTransCode(); // 调用后端“停止转码”接口 -}; - -// 列表数据逻辑(保持不变) +// 列表数据逻辑 const {list, pagination, searchForm, fnGetData, fnResetPagination} = useListData(getHkVideoManagerList); -// 其他方法(保持不变) -// const fnSetPositioning = async (row) => { -// data.selectingPointsDialog.id = row.PLS_ID ? row.PLS_ID : ""; -// data.selectingPointsDialog.indexCode = row.indexCode; -// data.selectingPointsDialog.regionPathName = row.regionPathName; -// data.selectingPointsDialog.camName = row.name; -// data.selectingPointsDialog.videomanagerId = row.videomanagerId; -// data.selectingPointsDialog.visible = true; -// }; - +// 其他方法 const fnUpToBi = async (videomanagerId) => { await ElMessageBox.confirm("确定要置顶吗?置顶后将会默认展示在Bi页", { type: "warning", @@ -200,14 +171,16 @@ const fnUpToBi = async (videomanagerId) => { }; const fnPreviewVideo = async (row) => { - try { - const resData = await startTransCode({url: row.url, id: row.PLS_ID}); // 调用后端“启动转码”接口 - data.transcodeVideoDialog.visible = true; // 显示播放器弹窗 - data.transcodeVideoDialog.id = row.PLS_ID; // 显示播放器弹窗 - data.transcodeVideoDialog.src = - "http://172.16.70.226:7811/" + resData.videoUrl + "stream.m3u8"; - } catch (error) { - ElMessage.error("启动转码失败: " + (error.message || "未知错误")); + // 直接播放大华设备视频 + data.dahuaVideoDialog.visible = true; + data.dahuaVideoDialog.channel = row.channel; + console.log("播放大华设备视频:", row.channel); +}; + +const handlePlayVideoClose = (visible) => { + if (!visible) { + // 视频播放窗口关闭时的处理逻辑 + console.log("视频播放窗口已关闭"); } };