@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,
98 lines (97 loc) • 5.11 kB
JavaScript
import { defineComponent, computed, createElementBlock, openBlock, withDirectives, createVNode, unref } from "vue";
import { TUIAudioRoute } from "@tencentcloud/tuiroom-engine-js";
import { IconSpeakerPhone, IconEarpiece, TUIIcon } from "@tencentcloud/uikit-base-component-vue3";
import vTap from "../../../directives/vTap.mjs";
import "../../common/base/IconButton.vue2.mjs";
/* empty css */
import "../../../stores/room.mjs";
import "pinia";
import "../../../utils/environment.mjs";
/* empty css */
import "../../../hooks/useZIndex.mjs";
import "../../../services/main.mjs";
import "../../../services/roomService.mjs";
import "../../../locales/index.mjs";
import "mitt";
import "../../../services/manager/roomActionManager.mjs";
import "@tencentcloud/tui-core";
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
import { useAudioDeviceState } from "../../../core/hooks/useAudioDeviceState/index.mjs";
/* empty css */
/* empty css */
/* empty css */
import "../../../stores/basic.mjs";
/* empty css */
/* empty css */
/* empty css */
import "../../../hooks/useRoomEngine.mjs";
import "../../../core/hooks/useVideoDeviceState/index.mjs";
/* empty css */
/* empty css */
import "../../../core/hooks/useUserState/useUserActions/useAudioAction.mjs";
import "../../../core/hooks/useUserState/useUserActions/useChatAction.mjs";
import "../../../core/hooks/useUserState/useUserActions/useVideoAction.mjs";
import "../../../core/hooks/useUserState/useUserActions/useTransferOwnerAction.mjs";
import "../../../core/hooks/useUserState/useUserActions/useChangeNameCardAction/index.mjs";
import "../../../core/hooks/useUserState/useUserActions/useKickUserAction.mjs";
import "../../../core/hooks/useUserState/useUserActions/useSeatAction.mjs";
import "../../../core/hooks/useUserState/useUserActions/useAdminAction.mjs";
import "../../../core/store/room.mjs";
import "../../../core/manager/userEventManger.mjs";
/* empty css */
import "../../../core/hooks/useFreeBeautyState/index.mjs";
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
import "../../../core/hooks/useUserState/useUserActions/useMemberInviteAction.mjs";
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
/* empty css */
const _hoisted_1 = { class: "audio-route-icon" };
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "SwitchAudioRoute",
setup(__props) {
const { currentAudioRoute, speaker } = useAudioDeviceState();
const icon = computed(
() => currentAudioRoute.value === TUIAudioRoute.kAudioRouteSpeakerphone ? IconSpeakerPhone : IconEarpiece
);
async function handleSwitchAudioRoute() {
const audioRoute = currentAudioRoute.value === TUIAudioRoute.kAudioRouteSpeakerphone ? TUIAudioRoute.kAudioRouteEarpiece : TUIAudioRoute.kAudioRouteSpeakerphone;
await speaker.setAudioRoute({
route: audioRoute
});
}
return (_ctx, _cache) => {
return openBlock(), createElementBlock("div", _hoisted_1, [
withDirectives(createVNode(unref(TUIIcon), {
icon: icon.value,
size: "20"
}, null, 8, ["icon"]), [
[unref(vTap), handleSwitchAudioRoute]
])
]);
};
}
});
export {
_sfc_main as default
};