diff --git a/.env.production b/.env.production index 7b472cf..9a9be2f 100644 --- a/.env.production +++ b/.env.production @@ -1,7 +1,7 @@ # 生产环境 NODE_ENV = 'production' # 渔船点位 -VITE_WS_BASE_URL ='ws://100.95.225.221:6810/api/gisWs' +VITE_WS_BASE_URL ='ws://198.16.74.211:6060/video-service/SowWs/123' VITE_APP_BASE_URL = 'http://198.16.74.211:7284/api' # 智能体访问地址 diff --git a/public/plugin/VideoWebPlugin.exe b/public/plugin/VideoWebPlugin.exe index ea85d46..6617c6b 100644 Binary files a/public/plugin/VideoWebPlugin.exe and b/public/plugin/VideoWebPlugin.exe differ diff --git a/src/api/device.js b/src/api/device.js index 4e78b63..1d007a0 100644 --- a/src/api/device.js +++ b/src/api/device.js @@ -72,4 +72,20 @@ export const findEnvPage = (data) => { method: 'post', data: data }) +} +// 视频监控详情信息 +export const getVideoInfo = (data) => { + return request({ + url: '/fishingPort/dsVideo/getVideoInfo', + method: 'post', + data: data + }) +} +// 巡检报告导出 +export const cctvExport = (data) => { + return request({ + url: '/pollExport/cctvExport', + method: 'post', + data: data + }) } \ No newline at end of file diff --git a/src/components/FlvPlayer/index.vue b/src/components/FlvPlayer/index.vue index b4e18d6..4743cd7 100644 --- a/src/components/FlvPlayer/index.vue +++ b/src/components/FlvPlayer/index.vue @@ -24,6 +24,7 @@ const props = defineProps({ let player = null let flag = 0 let retryCount = 0 +let timeoutId = null const MAX_RETRIES = 30 const initPlayer = () => { if (flvjs.isSupported()) { @@ -45,34 +46,28 @@ const initPlayer = () => { url: url }, { - // // 启用IO隐藏缓冲区 - // // 如果需要实时(最小延迟)来进行实时流播放,则设置为false - // // 但是如果网络抖动,则可能会停顿 - // enableStashBuffer: false, - // // 之时IO暂存缓冲区的初始大小,默认值为384kb,指出合适的尺寸可以改善视频负载/搜索时间 - // stashInitialSize: 128 - - // 启用缓冲区优化 - enableStashBuffer: true, // 改为true启用缓冲 - stashInitialSize: 1024 * 1024, // 设置初始缓冲大小 - maxBufferLength: 30 // 最大缓冲时长(秒) + // 启用IO隐藏缓冲区 + // 如果需要实时(最小延迟)来进行实时流播放,则设置为false + // 但是如果网络抖动,则可能会停顿 + enableStashBuffer: false, + // 之时IO暂存缓冲区的初始大小,默认值为384kb,指出合适的尺寸可以改善视频负载/搜索时间 + stashInitialSize: 128 } ) player.attachMediaElement(videoElement) player.load() player.play() - console.log('player play') flag += 1 player.on('error', () => { - console.log('errorrrrrrrrrrrrrrrrrrrrrrrr') clear() // 重试次数增加,延长时间指数增长,不超过10s const retryDelay = Math.min(10000, 1000 * Math.pow(2, retryCount)) retryCount++ - setTimeout(() => { + timeoutId = setTimeout(() => { + timeoutId = null console.log(retryCount, retryDelay, '重连次数......') if (retryCount <= MAX_RETRIES) { initPlayer() // 重新初始化播放器 @@ -90,6 +85,10 @@ const initPlayer = () => { } const clear = () => { + if (timeoutId) { + clearTimeout(timeoutId) + timeoutId = null + } if (player) { player.pause() player.destroy() diff --git a/src/components/Map/index.vue b/src/components/Map/index.vue index ebbc112..5b3c20d 100644 --- a/src/components/Map/index.vue +++ b/src/components/Map/index.vue @@ -13,18 +13,16 @@ diff --git a/src/views/business/index.vue b/src/views/business/index.vue index 0de30e7..a6496d8 100644 --- a/src/views/business/index.vue +++ b/src/views/business/index.vue @@ -6,7 +6,7 @@ - + @@ -22,9 +22,6 @@ import useMapStore from '@/store/modules/map' import { computed } from 'vue' const mapStore = useMapStore() -const largeModel = computed(() => { - return mapStore.largeModel -}) const visible = computed(() => mapStore.dialog.visible) const type = computed(() => mapStore.dialog.type) window.name = 'business_window' diff --git a/src/views/business/largeModel/history.vue b/src/views/business/largeModel/history.vue index 751977e..49bc62a 100644 --- a/src/views/business/largeModel/history.vue +++ b/src/views/business/largeModel/history.vue @@ -11,13 +11,13 @@ -
+ +
+
-