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,

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