UNPKG

@tencentcloud/roomkit-web-vue3

Version:

<h1 align="center"> TUIRoomKit</h1> Conference (TUIRoomKit) is a product suitable for multi-person audio and video conversation scenarios such as business meetings, webinars, and online education. By integrating this product, you can add room management,

49 lines (48 loc) 2.07 kB
import { TUIMediaDeviceType, TUIMediaDeviceState } from "@tencentcloud/tuiroom-engine-js"; import logger from "../../../utils/common/logger/index.mjs"; import useVideoDeviceManagerState, { isCameraListInitiated } from "./videoDeviceManagerState.mjs"; import useDeviceManager from "../../../hooks/useDeviceManager.mjs"; const deviceManager = useDeviceManager(); const { cameraList, currentCameraDevice } = useVideoDeviceManagerState(); async function initMediaDeviceList() { var _a, _b; if (!deviceManager.instance) { return; } cameraList.value = await ((_a = deviceManager.instance) == null ? void 0 : _a.getDevicesList({ type: TUIMediaDeviceType.kMediaDeviceTypeVideoCamera })); isCameraListInitiated.value = true; currentCameraDevice.value = (_b = deviceManager.instance) == null ? void 0 : _b.getCurrentDevice({ type: TUIMediaDeviceType.kMediaDeviceTypeVideoCamera }); } async function onDeviceChanged(eventInfo) { var _a, _b; const { deviceId, type, state } = eventInfo; if (!deviceManager.instance || type !== TUIMediaDeviceType.kMediaDeviceTypeVideoCamera) { return; } const deviceTypeTextObj = { [TUIMediaDeviceType.kMediaDeviceTypeAudioInput]: "mic", [TUIMediaDeviceType.kMediaDeviceTypeAudioOutput]: "speaker", [TUIMediaDeviceType.kMediaDeviceTypeVideoCamera]: "camera", [TUIMediaDeviceType.kMediaDeviceTypeUnknown]: "unknown" }; const stateTextObj = { [TUIMediaDeviceState.kMediaDeviceStateAdd]: "add", [TUIMediaDeviceState.kMediaDeviceStateRemove]: "remove", [TUIMediaDeviceState.kMediaDeviceStateActive]: "active" }; logger.log( `onDeviceChanged: deviceId: ${deviceId}, type: ${deviceTypeTextObj[type]}, state: ${stateTextObj[state]}` ); cameraList.value = await ((_a = deviceManager.instance) == null ? void 0 : _a.getDevicesList({ type })) || []; currentCameraDevice.value = (_b = deviceManager.instance) == null ? void 0 : _b.getCurrentDevice({ type: TUIMediaDeviceType.kMediaDeviceTypeVideoCamera }); } export { initMediaDeviceList, onDeviceChanged };