parent
13c1e97405
commit
bac75ee325
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
|
@ -1,194 +1,194 @@
|
|||
<template>
|
||||
<div class="hkcont">
|
||||
<div id="player">
|
||||
|
||||
</div>
|
||||
<div class="items">
|
||||
<div>
|
||||
<button type="button" @click="startTalk">开始对讲</button>
|
||||
<button type="button" @click="stopTalk">停止对讲</button>
|
||||
<!-- <button type="button" onClick="SetVolume()">设置声音</button> -->
|
||||
设置声音<input
|
||||
type="range"
|
||||
min="0"
|
||||
max="100"
|
||||
step="1"
|
||||
value="50"
|
||||
v-model="inputValue"
|
||||
@change="TalkSetVolume"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="hkcont">
|
||||
<div id="player"></div>
|
||||
<div class="items">
|
||||
<div>
|
||||
<button type="button" @click="startTalk">开始对讲</button>
|
||||
<button type="button" @click="stopTalk">停止对讲</button>
|
||||
设置声音<input type="range" min="0" max="100" step="1" value="50" v-model="inputValue" @change="TalkSetVolume" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import api from '@/axios'
|
||||
import { Ref, ref, watch, onMounted, onBeforeMount, onBeforeUnmount, reactive, getCurrentInstance } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { JsonResult } from '@/axios'
|
||||
const router = useRouter()
|
||||
const infoData = ref()
|
||||
const inputValue = ref(50)
|
||||
var curIndex = 0 // 当前窗口下标
|
||||
let myPlugin : any
|
||||
//开启对讲
|
||||
let date = {
|
||||
pointId: router.currentRoute.value.query.pointId,
|
||||
useTLS: 0
|
||||
}
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
date.useTLS = 1
|
||||
}
|
||||
const startTalk = () => {
|
||||
console.log('开启对讲')
|
||||
api.post('/multialarm/talk/channel', { ...date }).then((ress) => {
|
||||
console.log('对讲地址', ress.data.videoUrl);
|
||||
myPlugin.JS_SetConnectTimeOut(0, 3000);
|
||||
myPlugin.JS_StartTalk(ress.data.videoUrl).then(
|
||||
() => {
|
||||
console.log("talkStart success");
|
||||
},
|
||||
(e) => {
|
||||
console.error(e, "对讲失败");
|
||||
}
|
||||
);
|
||||
})
|
||||
}
|
||||
//关闭对讲
|
||||
const stopTalk = ()=>{
|
||||
myPlugin.JS_StopTalk().then(function () {
|
||||
console.log("关闭对讲 success");
|
||||
}, function () {
|
||||
console.log("关闭对讲 failed");
|
||||
});
|
||||
};
|
||||
//调节声音
|
||||
const TalkSetVolume = () =>{
|
||||
myPlugin.JS_TalkSetVolume(parseFloat(inputValue.value)).then(
|
||||
() => {
|
||||
console.log("JS_TalkSetVolume success", inputValue.value);
|
||||
},
|
||||
(err) => {
|
||||
console.error("JS_TalkSetVolume failed", err);
|
||||
}
|
||||
);
|
||||
}
|
||||
onMounted(() => {
|
||||
if (typeof window.JSPlugin === 'undefined') {
|
||||
return
|
||||
} else {
|
||||
}
|
||||
|
||||
|
||||
api.post('/multialarm/video/preview', { ...date }).then((res : JsonResult<any>) => {
|
||||
// console.log('router222', res)
|
||||
console.log('播放地址', res.data.videoUrl)
|
||||
var code = res['code']
|
||||
if (code == 0) {
|
||||
var playURL = res.data.videoUrl
|
||||
// var playURL = 'wss://w.hnjinglian.cn:2563/haikang play/openUrl/w64vRni'
|
||||
var IS_MOVE_DEVICE = document.body.clientWidth < 992 // 是否移动设备
|
||||
var MSE_IS_SUPPORT = !!window.MediaSource // 是否支持mse
|
||||
myPlugin = new window.JSPlugin({
|
||||
// 当容器div#play_window有固定宽高时,可不传iWidth和iHeight,窗口大小将自适应容器宽高
|
||||
// iWidth: 600,
|
||||
// iHeight: 400,
|
||||
szId: 'player', //需要英文字母开头,唯一性,必填
|
||||
szBasePath: '/haikang', // 必填,与h5player.min.js的引用目录一致
|
||||
iMaxSplit: 1, // 分屏播放,默认最大分屏4*4
|
||||
iCurrentSplit: IS_MOVE_DEVICE ? 1 : 2,
|
||||
openDebug: true,
|
||||
oStyle: {
|
||||
borderSelect: IS_MOVE_DEVICE ? '#000' : '#FFCC00'
|
||||
},
|
||||
bSupporDoubleClickFull: true //是否支持双击全屏,默认true
|
||||
})
|
||||
import api from '@/axios'
|
||||
import {ref, onMounted, onBeforeUnmount} from 'vue'
|
||||
import {useRouter} from 'vue-router'
|
||||
import {JsonResult} from '@/axios'
|
||||
const router = useRouter()
|
||||
const inputValue = ref(50)
|
||||
var curIndex = 0 // 当前窗口下标
|
||||
let myPlugin: any
|
||||
//开启对讲
|
||||
let date = {
|
||||
pointId: router.currentRoute.value.query.pointId,
|
||||
useTLS: 0
|
||||
}
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
date.useTLS = 1
|
||||
}
|
||||
const startTalk = () => {
|
||||
console.log('开启对讲')
|
||||
api.post<any>('/multialarm/talk/channel', {...date}).then((ress) => {
|
||||
console.log('对讲地址', ress.data.videoUrl)
|
||||
myPlugin.JS_SetConnectTimeOut(0, 3000)
|
||||
myPlugin.JS_StartTalk(ress.data.videoUrl).then(
|
||||
() => {
|
||||
console.log('talkStart success')
|
||||
},
|
||||
(e: any) => {
|
||||
console.error(e, '对讲失败')
|
||||
}
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
var controlIndex = 2
|
||||
const GetVolume = () => {
|
||||
myPlugin.JS_GetVolume(curIndex).then(
|
||||
(volumn: any) => {
|
||||
//在不设置音量的情况下默认50
|
||||
console.info('JS_GetVolume success', volumn)
|
||||
// do you want...
|
||||
},
|
||||
(err: any) => {
|
||||
console.info('JS_GetVolume failed')
|
||||
// do you want...
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
const OpenSound = () => {
|
||||
myPlugin.JS_OpenSound(curIndex).then(
|
||||
() => {
|
||||
console.info('JS_OpenSound success')
|
||||
// do you want...
|
||||
},
|
||||
(err: any) => {
|
||||
console.info('JS_OpenSound failed')
|
||||
// do you want...
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
//关闭对讲
|
||||
const stopTalk = () => {
|
||||
myPlugin.JS_StopTalk().then(
|
||||
function () {
|
||||
console.log('关闭对讲 success')
|
||||
},
|
||||
function () {
|
||||
console.log('关闭对讲 failed')
|
||||
}
|
||||
)
|
||||
}
|
||||
//调节声音
|
||||
const TalkSetVolume = () => {
|
||||
myPlugin.JS_TalkSetVolume(parseFloat(inputValue.value)).then(
|
||||
() => {
|
||||
console.log('JS_TalkSetVolume success', inputValue.value)
|
||||
},
|
||||
(err: any) => {
|
||||
console.error('JS_TalkSetVolume failed', err)
|
||||
}
|
||||
)
|
||||
}
|
||||
onMounted(() => {
|
||||
if (typeof window.JSPlugin === 'undefined') {
|
||||
return
|
||||
} else {
|
||||
}
|
||||
|
||||
//开启对讲
|
||||
// function startTalk() {
|
||||
// console.log('开启对讲')
|
||||
// api.post('/multialarm/talk/channel', { ...date }).then((ress) => {
|
||||
// console.log('对讲地址', ress.data.videoUrl);
|
||||
// // myPlugin.JS_SetConnectTimeOut(0, 3000);
|
||||
// myPlugin.JS_StartTalk(ress.data.videoUrl).then(
|
||||
// () => {
|
||||
// console.log("talkStart success");
|
||||
// },
|
||||
// (e) => {
|
||||
// console.error(e, "对讲失败");
|
||||
// }
|
||||
// );
|
||||
// })
|
||||
|
||||
api.post('/multialarm/video/preview', {...date}).then((res: JsonResult<any>) => {
|
||||
// console.log('router222', res)
|
||||
console.log('播放地址', res.data.videoUrl)
|
||||
var code = res['code']
|
||||
if (code == 0) {
|
||||
var playURL = res.data.videoUrl
|
||||
// var playURL = 'wss://w.hnjinglian.cn:2563/haikang play/openUrl/w64vRni'
|
||||
var IS_MOVE_DEVICE = document.body.clientWidth < 992 // 是否移动设备
|
||||
var MSE_IS_SUPPORT = !!window.MediaSource // 是否支持mse
|
||||
myPlugin = new window.JSPlugin({
|
||||
// 当容器div#play_window有固定宽高时,可不传iWidth和iHeight,窗口大小将自适应容器宽高
|
||||
// iWidth: 600,
|
||||
// iHeight: 400,
|
||||
szId: 'player', //需要英文字母开头,唯一性,必填
|
||||
szBasePath: '/haikang', // 必填,与h5player.min.js的引用目录一致
|
||||
iMaxSplit: 1, // 分屏播放,默认最大分屏4*4
|
||||
iCurrentSplit: IS_MOVE_DEVICE ? 1 : 2,
|
||||
openDebug: true,
|
||||
oStyle: {
|
||||
borderSelect: IS_MOVE_DEVICE ? '#000' : '#FFCC00'
|
||||
},
|
||||
bSupporDoubleClickFull: true //是否支持双击全屏,默认true
|
||||
})
|
||||
|
||||
// }
|
||||
|
||||
var controlIndex = 2
|
||||
|
||||
function playVideo() {
|
||||
myPlugin
|
||||
.JS_Play(
|
||||
playURL,
|
||||
{
|
||||
playURL: playURL, // 流媒体播放时必传
|
||||
mode: 1 // 解码类型:0=普通模式; 1=高级模式 默认为0
|
||||
},
|
||||
curIndex //当前窗口下标
|
||||
)
|
||||
.then(
|
||||
() => { },
|
||||
(e : any) => {
|
||||
// console.log('网络流中断')
|
||||
controlIndex--
|
||||
if (controlIndex <= 0) {
|
||||
return
|
||||
}
|
||||
// console.info('JS_Play failed:', e)
|
||||
playVideo()
|
||||
}
|
||||
)
|
||||
}
|
||||
playVideo()
|
||||
} else {
|
||||
alert('播放失败')
|
||||
}
|
||||
})
|
||||
})
|
||||
function playVideo() {
|
||||
myPlugin
|
||||
.JS_Play(
|
||||
playURL,
|
||||
{
|
||||
playURL: playURL, // 流媒体播放时必传
|
||||
mode: 1 // 解码类型:0=普通模式; 1=高级模式 默认为0
|
||||
},
|
||||
curIndex //当前窗口下标
|
||||
)
|
||||
.then(
|
||||
() => {
|
||||
console.info('JS_Play success')
|
||||
|
||||
// 停止播放断开 ws 连接
|
||||
onBeforeUnmount(() => {
|
||||
myPlugin.JS_Stop(curIndex).then(
|
||||
() => {
|
||||
console.info('JS_Stop success')
|
||||
// do you want...
|
||||
},
|
||||
(err : any) => {
|
||||
console.info('JS_Stop failed:', err)
|
||||
// do you want...
|
||||
}
|
||||
)
|
||||
})
|
||||
OpenSound()
|
||||
GetVolume()
|
||||
// do you want...
|
||||
},
|
||||
(e: any) => {
|
||||
// console.log('网络流中断')
|
||||
controlIndex--
|
||||
if (controlIndex <= 0) {
|
||||
return
|
||||
}
|
||||
// console.info('JS_Play failed:', e)
|
||||
playVideo()
|
||||
}
|
||||
)
|
||||
}
|
||||
playVideo()
|
||||
} else {
|
||||
alert('播放失败')
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
// 停止播放断开 ws 连接
|
||||
onBeforeUnmount(() => {
|
||||
myPlugin.JS_Stop(curIndex).then(
|
||||
() => {
|
||||
console.info('JS_Stop success')
|
||||
// do you want...
|
||||
},
|
||||
(err: any) => {
|
||||
console.info('JS_Stop failed:', err)
|
||||
// do you want...
|
||||
}
|
||||
)
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.hkcont{
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
#player {
|
||||
height:100%;
|
||||
width: 100%;
|
||||
background: #000;
|
||||
}
|
||||
.items {
|
||||
border: 1px solid #444444;position:absolute;bottom:0px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
.hkcont {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
#player {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background: #000;
|
||||
}
|
||||
.items {
|
||||
border: 1px solid #444444;
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -856,8 +856,8 @@ const initMapdt = (data: any, podat: any, name: any) => {
|
|||
}
|
||||
if (name !== '湖南省') {
|
||||
// option.series = option.series.filter((series) => series.type !== 'lines')
|
||||
// option.series[1].data = []
|
||||
// option.series[2].data = []
|
||||
option.series[1].data = []
|
||||
option.series[2].data = []
|
||||
myChart.setOption(option)
|
||||
} else {
|
||||
myChart.setOption(option)
|
||||
|
|
Loading…
Reference in New Issue