forked from drone/command-center-dashboard

chenyao
2025-04-21 f6d9825c7fd356694858f0f28a32677d6db0c082
src/views/SignMachineNest/MachineRight/MachineMonitor.vue
@@ -24,7 +24,7 @@
const osdVisible = computed(() => store.state.home.osdVisible);
// 直播地址
let airPortUrl = ref('')
// 获取直播地址
// 获取机巢直播地址
const getVideoUrl = (sn, quality) => {
   if (singleUavHome.value.status === 'OFFLINE') return;
   liveStart(sn, quality).then(res => {
@@ -33,16 +33,27 @@
   })
}
// 获取无人机直播url
async function getDroneLiveUrl(sn, quality) {
   airPortUrl.value = ''
   await nextTick()
   const res = await liveStart(sn, quality)
   airPortUrl.value = res.data.data.rtcs_url
}
const isTakeOff = ref(false)
// 监听ws消息
watch(() => store.state.home.deviceState, async (newValue) => {
   console.log(osdVisible.value.sn,'333333')
      const deviceInfo = newValue?.deviceInfo[osdVisible.value.sn]
      if (!deviceInfo) return
      const currentIsTakeOff = ![14, 0].includes(deviceInfo?.mode_code)
      console.log(isTakeOff.value, currentIsTakeOff,'8888')
      // 如果还是之前的状态,不切换
      if (isTakeOff.value === currentIsTakeOff) return
      isTakeOff.value = currentIsTakeOff
      isTakeOff.value ? await getVideoUrl(osdVisible.value.sn, 2) : await getVideoUrl(singleUavHome.value.device_sn, 1)
      isTakeOff.value ? await getDroneLiveUrl(osdVisible.value.sn, 2) : await getVideoUrl(singleUavHome.value.device_sn, 1)
   },
   {
      immediate: true,
@@ -53,6 +64,9 @@
onMounted(() => {
   getVideoUrl(singleUavHome.value.device_sn, 1)
})
onUnmounted(() => {
   airPortUrl.value = ''
})
</script>
<style lang="scss" scoped>