UNPKG

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,

78 lines (77 loc) 2.69 kB
import { ref, computed } from "vue"; import { TUIVideoQuality } from "@tencentcloud/tuiroom-engine-js"; import i18n from "../../../locales/index.mjs"; import "../../../utils/environment.mjs"; import { isGetUserMediaSupported, isEnumerateDevicesSupported } from "../../../utils/mediaAbility.mjs"; import { MediaDeviceState } from "../../type/MediaDeviceSetting.mjs"; import "../../../services/main.mjs"; import { roomService } from "../../../services/roomService.mjs"; import "mitt"; import "../../../services/manager/roomActionManager.mjs"; import "@tencentcloud/tui-core"; const { t } = i18n.global; const cameraList = ref([]); const currentCameraDevice = ref(); const currentCameraId = computed(() => { return currentCameraDevice.value && currentCameraDevice.value.deviceId || ""; }); const isFrontCamera = ref(true); const isLocalMirror = ref(true); const isCameraTestLoading = ref(false); const isCameraTesting = ref(false); const localVideoQuality = ref( TUIVideoQuality.kVideoQuality_360p ); const videoQualityList = computed(() => [ { label: t("Low Definition"), value: TUIVideoQuality.kVideoQuality_360p }, { label: t("Standard Definition"), value: TUIVideoQuality.kVideoQuality_540p }, { label: t("High Definition"), value: TUIVideoQuality.kVideoQuality_720p }, { label: t("Super Definition"), value: TUIVideoQuality.kVideoQuality_1080p } ]); const isCameraListInitiated = ref(false); const cameraState = computed(() => { var _a, _b, _c; if (!isGetUserMediaSupported || !isEnumerateDevicesSupported) { return MediaDeviceState.NotSupportCapture; } if (isCameraListInitiated.value && cameraList.value.length === 0) { return MediaDeviceState.NoDeviceDetected; } if (roomService.roomStore.isCameraDisableForAllUser && !((_a = roomService.roomStore.localStream) == null ? void 0 : _a.hasVideoStream) && roomService.roomStore.isGeneralUser) { return MediaDeviceState.DeviceOffAndDisabled; } if (roomService.roomStore.isAudience) { return MediaDeviceState.DeviceOffAndDisabled; } if ((_b = roomService.roomStore.localStream) == null ? void 0 : _b.hasVideoStream) { return MediaDeviceState.DeviceOn; } if (!((_c = roomService.roomStore.localStream) == null ? void 0 : _c.hasVideoStream)) { return MediaDeviceState.DeviceOff; } return MediaDeviceState.DeviceOff; }); function useVideoDeviceManagerState() { return { cameraList, currentCameraDevice, currentCameraId, isFrontCamera, cameraState, isLocalMirror, localVideoQuality, videoQualityList, isCameraTesting, isCameraTestLoading }; } export { useVideoDeviceManagerState as default, isCameraListInitiated };