优化视频和mqtt连接

main
刘妍 2025-12-04 15:45:40 +08:00
parent 33c05564e4
commit 1834d70b8b
3 changed files with 111 additions and 22 deletions

View File

@ -408,13 +408,17 @@
if (index == -1) {
startLiveFun();
} else {
player.src(live_info.url + liveCode.value + '.flv');
player.play();
airPortStoreVal.setflyLog({
type: 'success',
title: airPortInfo.name + '直播',
content: '已开启',
});
if (res.data.streams[index].publish.active) {
player.src(live_info.url + liveCode.value + '.flv');
player.play();
airPortStoreVal.setflyLog({
type: 'success',
title: airPortInfo.name + '直播',
content: '已开启',
});
} else {
startLiveFun();
}
}
} else {
startLiveFun();
@ -529,9 +533,11 @@
(val) => {
nextTick(() => {
const div = myDiv.value; // DOM
const scrollHeight = div.scrollTop; // div0scrollTop
if (scrollHeight > 0) {
myDiv.value.scrollTop = scrollHeight + 50;
if (div) {
const scrollHeight = div.scrollTop; // div0scrollTop
if (scrollHeight > 0) {
myDiv.value.scrollTop = scrollHeight + 50;
}
}
});
},
@ -557,12 +563,16 @@
}, 500);
};
onMounted(() => {
console.log('index--onMounted');
console.log(getClient());
window.addEventListener('resize', function () {
const pageHeight = document.documentElement.clientHeight;
console.log(pageHeight);
mapHeight.value = document.documentElement.clientHeight - 124;
});
createConnection(connectCallback);
if (!getClient() || !getClient().connected) {
createConnection(connectCallback);
}
document.addEventListener('keydown', handleKeyDown);
document.addEventListener('keyup', handleKeyUp);

View File

@ -467,6 +467,9 @@
import { useUserStore } from '@/store/modules/user';
import { endHandFlyTask, endAiInspection } from '@/api/workmanagement/droneDock';
import axios from 'axios';
import { useMessage } from '@/hooks/web/useMessage';
const { createMessage } = useMessage();
const emits = defineEmits(['closeUavBox', 'flyLog', 'patrolbtn']);
const airPortStoreVal = airPortStore();
@ -564,19 +567,22 @@
const getRtmpList = () => {
liveCode.value = uavInfo.sn;
axios.get(live_info.getUrl + 'api/v1/streams/').then((res) => {
console.log(res);
if (res.data.streams.length > 0) {
const index = res.data.streams.findIndex((item) => item.url === `/live/` + uavInfo.sn);
if (index == -1) {
startLiveFun();
} else {
player.src(live_info.url + liveCode.value + '.flv');
player.play();
airPortStoreVal.setflyLog({
type: 'success',
title: uavInfo.name + '直播',
content: '已开启',
});
if (res.data.streams[index].publish.active) {
player.src(live_info.url + liveCode.value + '.flv');
player.play();
airPortStoreVal.setflyLog({
type: 'success',
title: uavInfo.name + '直播',
content: '已开启',
});
} else {
startLiveFun();
}
}
} else {
startLiveFun();
@ -594,7 +600,7 @@
url: live_info.rtmp + liveCode.value,
//video_id = "1581F8HGX254V00A0BUY/0-100-1/normal-0",
video_id: uavInfo.video_id,
video_quality: 4, // 0=1=2=3=4=
video_quality: 3, // 0=1=2=3=4=
},
};
console.log(querys);
@ -759,7 +765,6 @@
//
const returnBtn = ref(false);
const returnVoyage = () => {
console.log('一键返航');
if (returnBtn.value) {
airPortStoreVal.setflyLog({
type: 'info',
@ -1138,6 +1143,7 @@
};
onMounted(() => {
console.log('box----onMounted');
//
document.addEventListener('keydown', handleKeyDown);
document.addEventListener('keyup', handleKeyUp);
@ -1150,7 +1156,7 @@
rightHeight.value = leftBox.value.clientHeight;
setTimeout(() => {
getRtmpList();
liveCode.value = uavInfo.sn;
player = TCPlayer('player-container-id-live', {
sources: [
{
@ -1160,6 +1166,7 @@
licenseUrl: live_info.url + liveCode.value + '.flv', // license license licenseUrl
autoplay: true, //
});
getRtmpList();
getClient().on('message', (topic, message) => {
const rs = JSON.parse(message);
//
@ -1313,6 +1320,7 @@
}
} else {
drc_eart_beat();
// createMessage.error('DRC' + errorName(rs.data.result) + ',');
}
}
if (rs.method == 'drc_mode_exit') {
@ -1448,6 +1456,10 @@
onUnmounted(() => {
document.removeEventListener('keydown', handleKeyDown);
document.removeEventListener('keyup', handleKeyUp);
if (player) {
player.dispose();
player = null;
}
});
</script>
<style lang="less" scoped>

View File

@ -0,0 +1,67 @@
// vite.config.ts
import { defineApplicationConfig } from "file:///E:/%E6%96%B0%E6%9E%B6%E6%9E%84%E9%A1%B9%E7%9B%AE/%E4%BD%8E%E7%A9%BA%E6%84%9F%E7%9F%A5%E5%B9%B3%E5%8F%B0/DiKongGanZhiPingTai/internal/vite-config/dist/index.mjs";
import { mars3dPlugin } from "file:///E:/%E6%96%B0%E6%9E%B6%E6%9E%84%E9%A1%B9%E7%9B%AE/%E4%BD%8E%E7%A9%BA%E6%84%9F%E7%9F%A5%E5%B9%B3%E5%8F%B0/DiKongGanZhiPingTai/node_modules/.pnpm/vite-plugin-mars3d@3.1.3_rollup@2.79.2/node_modules/vite-plugin-mars3d/dist/index.js";
var vite_config_default = defineApplicationConfig({
overrides: {
optimizeDeps: {
include: [
"echarts/core",
"echarts/charts",
"echarts/components",
"echarts/renderers",
"qrcode",
"@iconify/iconify",
"ant-design-vue/es/locale/zh_CN",
"ant-design-vue/es/locale/en_US",
"@/../lib/vform/designer.umd.js"
]
},
build: {
/* 其他build生产打包配置省略 */
//...
target: "esnext",
commonjsOptions: {
include: [/node_modules|lib/, /node_modules|packages/]
//这里记得把lib目录加进来否则生产打包会报错
}
},
server: {
proxy: {
"/basic-api": {
target: "http://localhost:3000",
changeOrigin: true,
ws: true,
rewrite: (path) => path.replace(new RegExp(`^/basic-api`), "")
// only https
// secure: false
},
"/upload": {
target: "http://localhost:3300/upload",
changeOrigin: true,
ws: true,
rewrite: (path) => path.replace(new RegExp(`^/upload`), "")
}
},
warmup: {
clientFiles: ["./index.html", "./src/{views,components}/*"]
}
},
define: {
"process.env": {
BASE_URL: "/"
}
},
css: {
preprocessorOptions: {
less: {
javascriptEnabled: true
}
}
},
plugins: [mars3dPlugin()]
}
});
export {
vite_config_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJFOlxcXFxcdTY1QjBcdTY3QjZcdTY3ODRcdTk4NzlcdTc2RUVcXFxcXHU0RjRFXHU3QTdBXHU2MTFGXHU3N0U1XHU1RTczXHU1M0YwXFxcXERpS29uZ0dhblpoaVBpbmdUYWlcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkU6XFxcXFx1NjVCMFx1NjdCNlx1Njc4NFx1OTg3OVx1NzZFRVxcXFxcdTRGNEVcdTdBN0FcdTYxMUZcdTc3RTVcdTVFNzNcdTUzRjBcXFxcRGlLb25nR2FuWmhpUGluZ1RhaVxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRTovJUU2JTk2JUIwJUU2JTlFJUI2JUU2JTlFJTg0JUU5JUExJUI5JUU3JTlCJUFFLyVFNCVCRCU4RSVFNyVBOSVCQSVFNiU4NCU5RiVFNyU5RiVBNSVFNSVCOSVCMyVFNSU4RiVCMC9EaUtvbmdHYW5aaGlQaW5nVGFpL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZGVmaW5lQXBwbGljYXRpb25Db25maWcgfSBmcm9tICdAdmJlbi92aXRlLWNvbmZpZyc7XG5pbXBvcnQgeyBtYXJzM2RQbHVnaW4gfSBmcm9tICd2aXRlLXBsdWdpbi1tYXJzM2QnO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVBcHBsaWNhdGlvbkNvbmZpZyh7XG4gIG92ZXJyaWRlczoge1xuICAgIG9wdGltaXplRGVwczoge1xuICAgICAgaW5jbHVkZTogW1xuICAgICAgICAnZWNoYXJ0cy9jb3JlJyxcbiAgICAgICAgJ2VjaGFydHMvY2hhcnRzJyxcbiAgICAgICAgJ2VjaGFydHMvY29tcG9uZW50cycsXG4gICAgICAgICdlY2hhcnRzL3JlbmRlcmVycycsXG4gICAgICAgICdxcmNvZGUnLFxuICAgICAgICAnQGljb25pZnkvaWNvbmlmeScsXG4gICAgICAgICdhbnQtZGVzaWduLXZ1ZS9lcy9sb2NhbGUvemhfQ04nLFxuICAgICAgICAnYW50LWRlc2lnbi12dWUvZXMvbG9jYWxlL2VuX1VTJyxcbiAgICAgICAgJ0AvLi4vbGliL3Zmb3JtL2Rlc2lnbmVyLnVtZC5qcycsXG4gICAgICBdLFxuICAgIH0sXG4gICAgYnVpbGQ6IHtcbiAgICAgIC8qIFx1NTE3Nlx1NEVENmJ1aWxkXHU3NTFGXHU0RUE3XHU2MjUzXHU1MzA1XHU5MTREXHU3RjZFXHU3NzAxXHU3NTY1ICovXG4gICAgICAvLy4uLlxuICAgICAgdGFyZ2V0OiAnZXNuZXh0JyxcbiAgICAgIGNvbW1vbmpzT3B0aW9uczoge1xuICAgICAgICBpbmNsdWRlOiBbL25vZGVfbW9kdWxlc3xsaWIvLCAvbm9kZV9tb2R1bGVzfHBhY2thZ2VzL10sIC8vXHU4RkQ5XHU5MUNDXHU4QkIwXHU1Rjk3XHU2MjhBbGliXHU3NkVFXHU1RjU1XHU1MkEwXHU4RkRCXHU2NzY1XHVGRjBDXHU1NDI2XHU1MjE5XHU3NTFGXHU0RUE3XHU2MjUzXHU1MzA1XHU0RjFBXHU2MkE1XHU5NTE5XHVGRjAxXHVGRjAxXG4gICAgICB9LFxuICAgIH0sXG4gICAgc2VydmVyOiB7XG4gICAgICBwcm94eToge1xuICAgICAgICAnL2Jhc2ljLWFwaSc6IHtcbiAgICAgICAgICB0YXJnZXQ6ICdodHRwOi8vbG9jYWxob3N0OjMwMDAnLFxuICAgICAgICAgIGNoYW5nZU9yaWdpbjogdHJ1ZSxcbiAgICAgICAgICB3czogdHJ1ZSxcbiAgICAgICAgICByZXdyaXRlOiAocGF0aCkgPT4gcGF0aC5yZXBsYWNlKG5ldyBSZWdFeHAoYF4vYmFzaWMtYXBpYCksICcnKSxcbiAgICAgICAgICAvLyBvbmx5IGh0dHBzXG4gICAgICAgICAgLy8gc2VjdXJlOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICAnL3VwbG9hZCc6IHtcbiAgICAgICAgICB0YXJnZXQ6ICdodHRwOi8vbG9jYWxob3N0OjMzMDAvdXBsb2FkJyxcbiAgICAgICAgICBjaGFuZ2VPcmlnaW46IHRydWUsXG4gICAgICAgICAgd3M6IHRydWUsXG4gICAgICAgICAgcmV3cml0ZTogKHBhdGgpID0+IHBhdGgucmVwbGFjZShuZXcgUmVnRXhwKGBeL3VwbG9hZGApLCAnJyksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgd2FybXVwOiB7XG4gICAgICAgIGNsaWVudEZpbGVzOiBbJy4vaW5kZXguaHRtbCcsICcuL3NyYy97dmlld3MsY29tcG9uZW50c30vKiddLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGRlZmluZToge1xuICAgICAgJ3Byb2Nlc3MuZW52Jzoge1xuICAgICAgICBCQVNFX1VSTDogJy8nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNzczoge1xuICAgICAgcHJlcHJvY2Vzc29yT3B0aW9uczoge1xuICAgICAgICBsZXNzOiB7XG4gICAgICAgICAgamF2YXNjcmlwdEVuYWJsZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgcGx1Z2luczogW21hcnMzZFBsdWdpbigpXSxcbiAgfSxcbn0pO1xuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUEyWCxTQUFTLCtCQUErQjtBQUNuYSxTQUFTLG9CQUFvQjtBQUU3QixJQUFPLHNCQUFRLHdCQUF3QjtBQUFBLEVBQ3JDLFdBQVc7QUFBQSxJQUNULGNBQWM7QUFBQSxNQUNaLFNBQVM7QUFBQSxRQUNQO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBQ0EsT0FBTztBQUFBO0FBQUE7QUFBQSxNQUdMLFFBQVE7QUFBQSxNQUNSLGlCQUFpQjtBQUFBLFFBQ2YsU0FBUyxDQUFDLG9CQUFvQix1QkFBdUI7QUFBQTtBQUFBLE1BQ3ZEO0FBQUEsSUFDRjtBQUFBLElBQ0EsUUFBUTtBQUFBLE1BQ04sT0FBTztBQUFBLFFBQ0wsY0FBYztBQUFBLFVBQ1osUUFBUTtBQUFBLFVBQ1IsY0FBYztBQUFBLFVBQ2QsSUFBSTtBQUFBLFVBQ0osU0FBUyxDQUFDLFNBQVMsS0FBSyxRQUFRLElBQUksT0FBTyxhQUFhLEdBQUcsRUFBRTtBQUFBO0FBQUE7QUFBQSxRQUcvRDtBQUFBLFFBQ0EsV0FBVztBQUFBLFVBQ1QsUUFBUTtBQUFBLFVBQ1IsY0FBYztBQUFBLFVBQ2QsSUFBSTtBQUFBLFVBQ0osU0FBUyxDQUFDLFNBQVMsS0FBSyxRQUFRLElBQUksT0FBTyxVQUFVLEdBQUcsRUFBRTtBQUFBLFFBQzVEO0FBQUEsTUFDRjtBQUFBLE1BQ0EsUUFBUTtBQUFBLFFBQ04sYUFBYSxDQUFDLGdCQUFnQiw0QkFBNEI7QUFBQSxNQUM1RDtBQUFBLElBQ0Y7QUFBQSxJQUNBLFFBQVE7QUFBQSxNQUNOLGVBQWU7QUFBQSxRQUNiLFVBQVU7QUFBQSxNQUNaO0FBQUEsSUFDRjtBQUFBLElBQ0EsS0FBSztBQUFBLE1BQ0gscUJBQXFCO0FBQUEsUUFDbkIsTUFBTTtBQUFBLFVBQ0osbUJBQW1CO0FBQUEsUUFDckI7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBQ0EsU0FBUyxDQUFDLGFBQWEsQ0FBQztBQUFBLEVBQzFCO0FBQ0YsQ0FBQzsiLAogICJuYW1lcyI6IFtdCn0K