UNPKG

@tencentcloud/call-uikit-vue2

Version:

An Open-source Voice & Video Calling UI Component Based on Tencent Cloud Service.

52 lines (45 loc) 1.44 kB
import { ref, onMounted, onUnmounted } from '../../adapter-vue'; import { TUIStore } from '../../TUICallService'; import { DeviceType, NAME, StoreName } from '../../TUICallService/const'; export function useDeviceList(deviceType: DeviceType) { const deviceList = ref([]); const currentDeviceId = ref(''); const handleDeviceListChange = (value) => { switch (deviceType) { case DeviceType.CAMERA: deviceList.value = value?.cameraList || []; currentDeviceId.value = value?.currentCamera?.deviceId || ''; break; case DeviceType.MICROPHONE: deviceList.value = value?.microphoneList || []; currentDeviceId.value = value?.currentMicrophone?.deviceId || ''; break; case DeviceType.SPEAKER: deviceList.value = value?.speakerList || []; currentDeviceId.value = value?.currentSpeaker?.deviceId || ''; break; default: break; } }; const updateCurrentDeviceId = (value) => { currentDeviceId.value = value; }; onMounted(() => { TUIStore.watch( StoreName.CALL, { [NAME.DEVICE_LIST]: handleDeviceListChange, }, { notifyRangeWhenWatch: NAME.MYSELF, }, ); }); onUnmounted(() => { TUIStore.unwatch(StoreName.CALL, { [NAME.DEVICE_LIST]: handleDeviceListChange, }); }); return [{ deviceList, currentDeviceId }, { updateCurrentDeviceId }] as const; }