产品动态
产品近期公告
关于 TRTC Live 正式上线的公告
关于TRTC Conference 正式版上线的公告
Conference 商业化版本即将推出
关于多人音视频 Conference 开启内测公告
关于音视频通话 Call 正式版上线的公告
关于腾讯云音视频终端 SDK 播放升级及新增授权校验的公告
关于 TRTC 应用订阅套餐服务上线的相关说明

功能分类 | 具体能力 |
多素材类型支持 | 摄像头、屏幕共享、图片、视频、文本等多种素材类型,支持设备选择和参数配置。 |
智能显示模式 | 无素材时显示完整面板,有素材时自动切换为紧凑按钮模式,响应式布局适配。 |
素材管理操作 | 添加、编辑、重命名、删除、排序等完整的素材管理功能,支持批量操作。 |
实时预览配置 | 摄像头配置弹窗提供实时预览,支持参数调整和设备测试。 |
权限与错误处理 | 自动权限检查,友好的错误提示和重试机制,保障用户体验。 |
npm install tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3 --save
pnpm add tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3
yarn add tuikit-atomicx-vue3 @tencentcloud/uikit-base-component-vue3
<template><UIKitProvider theme="dark" language="zh-CN"><div class="app-container"><LiveScenePanel class="live-scene-panel" /></div></UIKitProvider></template><script setup lang="ts">import { onMounted } from 'vue';import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue3';import { LiveScenePanel, useLoginState } from 'tuikit-atomicx-vue3';const { login } = useLoginState();async function initLogin() {try {await login({sdkAppId: 0, // SDKAppID, 可以参考步骤 1 获取userId: '', // UserID, 可以参考步骤 1 获取userSig: '', // userSig, 可以参考步骤 1 获取});} catch (error) {console.error('登录失败:', error);}}onMounted(async () => {await initLogin();});</script><style scoped>.app-container{width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;padding:20px;box-sizing:border-box}.live-scene-panel{width:20%;height:80vh;background:rgba(0,0,0,0.8);border-radius:16px}</style>
<template><LiveScenePanel class="custom-live-scene-panel" /></template><style>.app-container{width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;padding:20px;box-sizing:border-box}.custom-live-scene-panel{width:100%;max-width:300px;height:80vh;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:2px solid #4c63d2;border-radius:16px;padding:24px;box-shadow:0 8px 32px rgba(0,0,0,0.1);color:white}.custom-live-scene-panel .add-material-item{background-color:#147fcb!important;color:white;border:none;border-radius:0!important;padding:12px 24px;font-weight:600;transition:all 0.3s ease}.custom-live-scene-panel .materials-list{margin-top:20px;gap:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.custom-live-scene-panel .material-item{background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.2);border-radius:12px;padding:16px;backdrop-filter:blur(10px);transition:all 0.3s ease}.custom-live-scene-panel .material-item:hover{background:rgba(255,255,255,0.2);transform:scale(1.02)}</style>
修改前 | | 修改后 | |
添加媒体源界面 | 媒体源设置界面 | 添加媒体源界面 | 媒体源设置界面 |
![]() | ![]() | ![]() | ![]() |
<template><!-- 状态显示 --><div class="status-info"><span>素材数量: {{ materialCount }}</span><span>最后操作: {{ lastOperation }}</span></div><!-- LiveScenePanel 组件 --><LiveScenePanel /><StreamMixer /></template><script setup lang="ts">import { ref, computed, watch } from 'vue';import { LiveScenePanel, useVideoMixerState, StreamMixer } from 'tuikit-atomicx-vue3';// 使用状态管理 hooksconst { mediaSourceList } = useVideoMixerState();const lastOperation = ref('无');const materialCount = computed(() => mediaSourceList.value.length);// 监听素材列表变化watch(mediaSourceList, (newList, oldList) => {if (newList.length > oldList.length) {lastOperation.value = '添加素材';console.log('素材已添加');} else if (newList.length < oldList.length) {lastOperation.value = '删除素材';console.log('素材已删除');}}, { deep: true });</script><style>.status-info {display: flex; gap: 20px; padding: 12px; background: #f8f9fa;border-radius: 6px; margin-bottom: 16px;font-size: 14px;}</style>
文档反馈