| | |
| | | import CommonTitle from '@/components/CommonTitle.vue' |
| | | import LiveVideo from '@/components/LiveVideo.vue' |
| | | import { liveStart } from '@/api/home/machineNest' |
| | | // import { CURRENT_CONFIG as config } from '@/utils/http/config' |
| | | import { useStore } from 'vuex' |
| | | |
| | | const store = useStore() |
| | | // 单个机巢信息 |
| | | const singleUavHome = computed(() => store.state.home.singleUavHome); |
| | | const osdVisible = computed(() => store.state.home.osdVisible); |
| | | const wsInfo = inject('wsInfo') |
| | | let device_osd_info = computed(() => wsInfo.value?.device_osd || {}); |
| | | let device_osd_host = computed(() => device_osd_info?.value?.data?.host || {}); |
| | | |
| | | const dockSn = inject('dockSn') |
| | | const droneSn = inject('droneSn') |
| | | // 直播地址 |
| | | let airPortUrl = ref('') |
| | | // 获取机巢直播地址 |
| | |
| | | |
| | | const isTakeOff = ref(false) |
| | | // 监听ws消息 |
| | | watch(() => store.state.home.deviceState, async (newValue) => { |
| | | const deviceInfo = newValue?.deviceInfo[osdVisible.value.sn] |
| | | if (!deviceInfo) return |
| | | const currentIsTakeOff = ![14, 0].includes(deviceInfo?.mode_code) |
| | | watch(device_osd_host, async () => { |
| | | if (device_osd_host?.value?.mode_code === undefined) return |
| | | const currentIsTakeOff = ![14, 0].includes(device_osd_host.value?.mode_code) |
| | | // 如果还是之前的状态,不切换 |
| | | if (isTakeOff.value === currentIsTakeOff) return |
| | | isTakeOff.value = currentIsTakeOff |
| | | isTakeOff.value ? await getDroneLiveUrl(osdVisible.value.sn, 2) : await getVideoUrl(singleUavHome.value.device_sn, 1) |
| | | isTakeOff.value ? await getDroneLiveUrl(droneSn.value, 2) : await getVideoUrl(dockSn.value, 1) |
| | | }, |
| | | { |
| | | immediate: true, |
| | |
| | | ) |
| | | |
| | | onMounted(() => { |
| | | getVideoUrl(singleUavHome.value.device_sn, 1) |
| | | getVideoUrl(dockSn.value, 2) |
| | | }) |
| | | onUnmounted(() => { |
| | | airPortUrl.value = '' |