@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,
77 lines (76 loc) • 3.56 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const TUIRoomEngine = require("@tencentcloud/tuiroom-engine-js");
const useDeviceManager = require("../../../hooks/useDeviceManager.js");
const index = require("../../../utils/common/logger/index.js");
const audioDeviceManagerState = require("./audioDeviceManagerState.js");
const {
microphoneList,
currentMicrophoneDevice,
speakerList,
currentSpeakerDevice
} = audioDeviceManagerState.default();
const deviceManager = useDeviceManager.default();
async function initMediaDeviceList() {
var _a, _b, _c, _d;
if (!deviceManager.instance) {
return;
}
microphoneList.value = await ((_a = deviceManager.instance) == null ? void 0 : _a.getDevicesList({
type: TUIRoomEngine.TUIMediaDeviceType.kMediaDeviceTypeAudioInput
})) || [];
audioDeviceManagerState.isMicrophoneListInitiated.value = true;
speakerList.value = await ((_b = deviceManager.instance) == null ? void 0 : _b.getDevicesList({
type: TUIRoomEngine.TUIMediaDeviceType.kMediaDeviceTypeAudioOutput
})) || [];
audioDeviceManagerState.isSpeakerListInitiated.value = true;
currentMicrophoneDevice.value = (_c = deviceManager.instance) == null ? void 0 : _c.getCurrentDevice({
type: TUIRoomEngine.TUIMediaDeviceType.kMediaDeviceTypeAudioInput
});
currentSpeakerDevice.value = (_d = deviceManager.instance) == null ? void 0 : _d.getCurrentDevice({
type: TUIRoomEngine.TUIMediaDeviceType.kMediaDeviceTypeAudioOutput
});
}
async function onDeviceChanged(eventInfo) {
var _a, _b, _c, _d;
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]}`
);
if (type === TUIRoomEngine.TUIMediaDeviceType.kMediaDeviceTypeAudioInput) {
microphoneList.value = await ((_a = deviceManager.instance) == null ? void 0 : _a.getDevicesList({
type
})) || [];
if (state === TUIRoomEngine.TUIMediaDeviceState.kMediaDeviceStateActive) {
currentMicrophoneDevice.value = ((_b = deviceManager.instance) == null ? void 0 : _b.getCurrentDevice({
type: TUIRoomEngine.TUIMediaDeviceType.kMediaDeviceTypeAudioInput
})) || null;
}
}
if (type === TUIRoomEngine.TUIMediaDeviceType.kMediaDeviceTypeAudioOutput) {
speakerList.value = await ((_c = deviceManager.instance) == null ? void 0 : _c.getDevicesList({
type
})) || [];
if (state === TUIRoomEngine.TUIMediaDeviceState.kMediaDeviceStateActive) {
currentSpeakerDevice.value = ((_d = deviceManager.instance) == null ? void 0 : _d.getCurrentDevice({
type: TUIRoomEngine.TUIMediaDeviceType.kMediaDeviceTypeAudioOutput
})) || null;
}
}
}
exports.initMediaDeviceList = initMediaDeviceList;
exports.onDeviceChanged = onDeviceChanged;
;