From a035d06975c9cef97fb296b9a09de6925d81d823 Mon Sep 17 00:00:00 2001
From: husq <931347610@qq.com>
Date: Tue, 26 Sep 2023 11:12:14 +0800
Subject: [PATCH] 处理视频关闭问题
---
src/components/GMap.vue | 24 +++++++++++++++++++++---
src/components/Jessibuca/Jessibuca.vue | 4 +++-
2 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/src/components/GMap.vue b/src/components/GMap.vue
index 83938f5..c407ae2 100644
--- a/src/components/GMap.vue
+++ b/src/components/GMap.vue
@@ -373,7 +373,7 @@
</div>
<a-row class="p5" v-if="showMonitor" justify="center" align="middle">
<!-- <a-spin :spinning="spinning"> -->
- <Jessibuca v-if="airPortUrl" :videoUrl="airPortUrl" width="100%" height="300px" />
+ <Jessibuca v-if="airPortUrl" @timeout="airTimeout" :videoUrl="airPortUrl" width="100%" height="300px" />
<!-- </a-spin> -->
</a-row>
<!-- 飞机-->
@@ -417,7 +417,7 @@
<!-- 飞机直播 -->
<a-row class="p5" v-if="showAircraft">
<!-- <a-spin :spinning="spinning"> -->
- <Jessibuca v-if="aircraftUrl" :videoUrl="aircraftUrl" width="100%" height="300px" />
+ <Jessibuca v-if="aircraftUrl" @timeout="flyTimeout" :videoUrl="aircraftUrl" width="100%" height="300px" />
<!-- </a-spin> -->
</a-row>
<!-- 飞机图标信息 -->
@@ -905,8 +905,24 @@
message.error(error)
})
}
+ // 机场视频超时说明可能直播被关闭需要重新开启直播
+ const airTimeout = () => {
+ try {
+ onStart()
+ } catch (e) {
+ onClose()
+ }
+ }
+ const flyTimeout = () => {
+ try {
+ flyOnStart()
+ } catch (e) {
+ closeFly()
+ }
+ }
// 设备开始播放
const onStart = async () => {
+ airPortUrl.value = ''
const videoId = droneList.value[droneIndex.value].value + '/' + cameraList.value[cameraIndex.value].value + '/' + videoList.value[videoIndex.value].value
const streamId = droneList.value[droneIndex.value].value + '-' + cameraList.value[cameraIndex.value].value + '-' + videoList.value[videoIndex.value].value
const liveURL = config.rtmpURL + streamId
@@ -1315,7 +1331,9 @@
closeOsdWindow,
openDroneControl,
openFlySetting,
- openDeviceSetting
+ openDeviceSetting,
+ airTimeout,
+ flyTimeout
}
}
})
diff --git a/src/components/Jessibuca/Jessibuca.vue b/src/components/Jessibuca/Jessibuca.vue
index 618d06d..2a98fc4 100644
--- a/src/components/Jessibuca/Jessibuca.vue
+++ b/src/components/Jessibuca/Jessibuca.vue
@@ -3,7 +3,7 @@
</template>
<script setup lang="ts">
-import { onMounted, onUnmounted, ref, defineProps } from 'vue'
+import { onMounted, onUnmounted, ref, defineProps, defineEmits } from 'vue'
import Jessibuca from '../../../public/jessibuca/jessibuca'
const props = defineProps({
videoUrl: {
@@ -19,6 +19,7 @@
default: '200px'
}
})
+const emits = defineEmits(['timeout'])
let jessibuca: null | Jessibuca = null
const container = ref(null)
const buffer = ref(null)
@@ -107,6 +108,7 @@
jessibuca.on('timeout', function () {
console.log('timeout')
+ emits('timeout')
})
jessibuca.on('start', function () {
--
Gitblit v1.9.3