| | |
| | | <div class="title">负载控制</div> |
| | | <div |
| | | class="singleCol" |
| | | v-for="item in list1" |
| | | v-for="item in list1.filter(i => i.show)" |
| | | @click="cameraType(item)" |
| | | :key="item.key" |
| | | :class="{ active: item.key === cameraParams.camera_type }" |
| | |
| | | <div @click="takePictures">拍照</div> |
| | | <div @click="recordFun">{{ isRecording ? '录像中...' : '录像' }}</div> |
| | | </div> |
| | | <div class="multiCol"> |
| | | <div class="multiCol" v-if="wsInfo?.psdk_widget_values"> |
| | | <div @click="shoutFun">{{ isRecordShouting ? '喊话' : '停止喊话' }}</div> |
| | | <div @click="broadcastFun">广播</div> |
| | | </div> |
| | |
| | | import Recorder from 'js-audio-recorder'; |
| | | import dayjs from 'dayjs' |
| | | |
| | | const wsInfo = inject('wsInfo') |
| | | // 初始化喊话 |
| | | let globalShout = null |
| | | |
| | | const isRecording = ref(false) |
| | | |
| | | const list1 = ref([ |
| | | { name: '广角', key: 'wide' }, |
| | | { name: '变焦', key: 'zoom' }, |
| | | { name: '红外', key: 'ir' }, |
| | | ]) |
| | | const hasIr = inject('hasIr') |
| | | const list1 = computed(() => { |
| | | return [ |
| | | { name: '广角', key: 'wide',show:true }, |
| | | { name: '变焦', key: 'zoom', show: true }, |
| | | { name: '红外', key: 'ir',show: hasIr.value }, |
| | | ] |
| | | }) |
| | | const cameraParams = ref({ |
| | | zoom_factor: 0, |
| | | camera_type: 'wide', |
| | |
| | | top: 50%; |
| | | transform: translateY(-60%); |
| | | width: 178px; |
| | | height: 416px; |
| | | padding: 20px 0; |
| | | background: rgba(0, 0, 0, 0.5); |
| | | backdrop-filter: blur(5px); |
| | | border-radius: 20px 20px 20px 20px; |