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,
48 lines (47 loc) • 2.02 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const Vue = require("vue");
const LoadingIcon = require("../../../components/common/icons/LoadingIcon.vue.js");
const SvgIcon = require("../../../components/common/base/SvgIcon.vue.js");
require("../../hooks/useAudioDeviceState/index.js");
const index$1 = require("../../hooks/useVideoDeviceState/index.js");
const index = require("../../../locales/index.js");
const TUIRoomEngine = require("@tencentcloud/tuiroom-engine-js");
const _hoisted_1 = { class: "video-preview-container" };
const _hoisted_2 = { class: "attention-info" };
const _hoisted_3 = {
key: 0,
class: "off-camera-info"
};
const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
__name: "VideoPreview",
setup(__props) {
const { t } = index.useI18n();
const { isCameraTesting, isCameraTestLoading, camera } = index$1.useVideoDeviceState();
Vue.onMounted(async () => {
TUIRoomEngine.once("ready", () => {
camera.startCameraDeviceTest({ view: "video-preview" });
});
});
Vue.onUnmounted(async () => {
await camera.stopCameraDeviceTest();
});
return (_ctx, _cache) => {
return Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
_cache[0] || (_cache[0] = Vue.createElementVNode("div", {
id: "video-preview",
class: "video-preview"
}, null, -1)),
Vue.createElementVNode("div", _hoisted_2, [
!Vue.unref(isCameraTesting) && !Vue.unref(isCameraTestLoading) ? (Vue.openBlock(), Vue.createElementBlock("span", _hoisted_3, Vue.toDisplayString(Vue.unref(t)("Off Camera")), 1)) : Vue.createCommentVNode("", true),
Vue.unref(isCameraTestLoading) ? (Vue.openBlock(), Vue.createBlock(SvgIcon.default, {
key: 1,
icon: LoadingIcon.default,
class: "loading"
})) : Vue.createCommentVNode("", true)
])
]);
};
}
});
exports.default = _sfc_main;