@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.35 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const TUIRoomEngine = require("@tencentcloud/tuiroom-engine-js");
const index = require("../../../utils/common/logger/index.js");
const videoDeviceManagerState = require("./videoDeviceManagerState.js");
const useDeviceManager = require("../../../hooks/useDeviceManager.js");
const deviceManager = useDeviceManager.default();
const { cameraList, currentCameraDevice } = videoDeviceManagerState.default();
async function initMediaDeviceList() {
var _a, _b;
if (!deviceManager.instance) {
return;
}
cameraList.value = await ((_a = deviceManager.instance) == null ? void 0 : _a.getDevicesList({
type: TUIRoomEngine.TUIMediaDeviceType.kMediaDeviceTypeVideoCamera
}));
videoDeviceManagerState.isCameraListInitiated.value = true;
currentCameraDevice.value = (_b = deviceManager.instance) == null ? void 0 : _b.getCurrentDevice({
type: TUIRoomEngine.TUIMediaDeviceType.kMediaDeviceTypeVideoCamera
});
}
async function onDeviceChanged(eventInfo) {
var _a, _b;
const { deviceId, type, state } = eventInfo;
if (!deviceManager.instance || type !== TUIRoomEngine.TUIMediaDeviceType.kMediaDeviceTypeVideoCamera) {
return;
}
const deviceTypeTextObj = {
[TUIRoomEngine.TUIMediaDeviceType.kMediaDeviceTypeAudioInput]: "mic",
[TUIRoomEngine.TUIMediaDeviceType.kMediaDeviceTypeAudioOutput]: "speaker",
[TUIRoomEngine.TUIMediaDeviceType.kMediaDeviceTypeVideoCamera]: "camera",
[TUIRoomEngine.TUIMediaDeviceType.kMediaDeviceTypeUnknown]: "unknown"
};
const stateTextObj = {
[TUIRoomEngine.TUIMediaDeviceState.kMediaDeviceStateAdd]: "add",
[TUIRoomEngine.TUIMediaDeviceState.kMediaDeviceStateRemove]: "remove",
[TUIRoomEngine.TUIMediaDeviceState.kMediaDeviceStateActive]: "active"
};
index.default.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: TUIRoomEngine.TUIMediaDeviceType.kMediaDeviceTypeVideoCamera
});
}
exports.initMediaDeviceList = initMediaDeviceList;
exports.onDeviceChanged = onDeviceChanged;
;