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,

98 lines (97 loc) 5.11 kB
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 };