@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,
127 lines (126 loc) • 4.41 kB
JavaScript
import "./services/main.mjs";
import { roomService } from "./services/roomService.mjs";
import logger from "./utils/common/logger/index.mjs";
import "./locales/index.mjs";
import "@tencentcloud/tuiroom-engine-js";
import "./utils/environment.mjs";
import "mitt";
import "./services/manager/roomActionManager.mjs";
import "@tencentcloud/tui-core";
import { MetricsKey } from "./services/manager/dataReportManager.mjs";
import { toTargetTheme } from "./utils/common.mjs";
var RoomEvent = /* @__PURE__ */ ((RoomEvent2) => {
RoomEvent2["ROOM_START"] = "RoomStart";
RoomEvent2["ROOM_JOIN"] = "RoomJoin";
RoomEvent2["ROOM_LEAVE"] = "RoomLeave";
RoomEvent2["ROOM_DISMISS"] = "RoomDestroy";
RoomEvent2["ROOM_ERROR"] = "RoomError";
RoomEvent2["KICKED_OUT"] = "KickedOut";
RoomEvent2["KICKED_OFFLINE"] = "KickedOffline";
RoomEvent2["USER_SIG_EXPIRED"] = "UserSigExpired";
RoomEvent2["USER_LOGOUT"] = "UserLogout";
RoomEvent2["LANGUAGE_CHANGED"] = "LanguageChanged";
RoomEvent2["THEME_CHANGED"] = "ThemeChanged";
RoomEvent2["CONFERENCE_INVITATION_ACCEPTED"] = "ConferenceInvitationAccepted";
return RoomEvent2;
})(RoomEvent || {});
var FeatureButton = /* @__PURE__ */ ((FeatureButton2) => {
FeatureButton2["SwitchTheme"] = "SwitchTheme";
FeatureButton2["SwitchLayout"] = "LayoutControl";
FeatureButton2["SwitchLanguage"] = "Language";
FeatureButton2["FullScreen"] = "FullScreen";
FeatureButton2["Invitation"] = "InviteControl";
FeatureButton2["BasicBeauty"] = "BasicBeauty";
return FeatureButton2;
})(FeatureButton || {});
class Conference {
login(params) {
return roomService.initRoomKit(params);
}
async logout() {
return roomService.logOut();
}
getRoomEngine() {
const roomEngine = roomService.roomEngine.instance;
if (!roomEngine) {
logger.warn("getRoomEngine failed, roomEngine is not exist");
}
return roomService.roomEngine.instance;
}
on(eventType, callback) {
roomService.on(eventType, callback);
}
off(eventType, callback) {
roomService.off(eventType, callback);
}
async start(roomId, params) {
return await roomService.start(roomId, params);
}
async join(roomId, params) {
return await roomService.join(roomId, params);
}
async leave() {
return await roomService.leaveRoom();
}
async dismiss() {
return await roomService.dismissRoom();
}
setSelfInfo(options) {
return roomService.setSelfInfo(options);
}
setLanguage(language) {
roomService.dataReportManager.reportCount(MetricsKey.setLanguage);
return roomService.setLanguage(language);
}
setTheme(theme) {
roomService.dataReportManager.reportCount(MetricsKey.setTheme);
return roomService.setTheme(toTargetTheme(theme));
}
disableTextMessaging() {
roomService.dataReportManager.reportCount(MetricsKey.disableTextMessaging);
roomService.setComponentConfig({ ChatControl: { visible: false } });
}
disableScreenSharing() {
roomService.dataReportManager.reportCount(MetricsKey.disableScreenSharing);
roomService.setComponentConfig({ ScreenShare: { visible: false } });
}
enableWatermark() {
roomService.dataReportManager.reportCount(MetricsKey.enableWatermark);
roomService.waterMark.toggleWatermark(true);
}
enableVirtualBackground() {
roomService.dataReportManager.reportCount(
MetricsKey.enableVirtualBackground
);
roomService.setComponentConfig({ VirtualBackground: { visible: true } });
}
hideFeatureButton(name) {
roomService.dataReportManager.reportCount(MetricsKey.hideFeatureButton);
roomService.setComponentConfig({ [name]: { visible: false } });
}
replaceFriendList(userList) {
return roomService.scheduleConferenceManager.replaceFriendList(userList);
}
setUserListSortComparator(comparator) {
roomService.userManager.setUserListSortComparator(comparator);
}
setStreamListSortComparator(comparator) {
roomService.userManager.setStreamListSortComparator(comparator);
}
setParticipants(participants) {
const list = participants.map((item) => {
const { userId, userName, avatarUrl } = item;
return {
userID: userId,
profile: { userID: userId, nick: userName, avatar: avatarUrl }
};
});
roomService.scheduleConferenceManager.replaceFriendList(list);
}
}
const conference = new Conference();
export {
FeatureButton,
RoomEvent,
conference
};