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

npm install tuikit-atomicx-react @tencentcloud/uikit-base-component-react --savenpm install sass --save-dev
pnpm add tuikit-atomicx-react @tencentcloud/uikit-base-component-reactpnpm add sass --dev
yarn add tuikit-atomicx-react @tencentcloud/uikit-base-component-reactyarn add sass --dev
LiveListView.tsx 和 LiveListView.module.scss 文件,可直接复制如下代码至您的项目中集成直播列表页面。import React, { useEffect, useCallback } from 'react';import { useNavigate, useSearchParams } from 'react-router-dom';import { LiveList, useLoginState } from 'tuikit-atomicx-react';import type { LiveInfo } from 'tuikit-atomicx-react';import { UIKitProvider, MessageBox } from '@tencentcloud/uikit-base-component-react';import styles from './LiveListView.module.scss';const LiveListView: React.FC = () => {const navigate = useNavigate();const [searchParams] = useSearchParams();const { loginUserInfo, login, setSelfInfo } = useLoginState();const handleLiveRoomClick = (liveInfo: LiveInfo) => {if (loginUserInfo?.userId === liveInfo.liveOwner?.userId) {MessageBox.alert({title: '警告',content: '无法查看自己的直播间',});return;}if (liveInfo?.liveId) {// 可以在此处添加业务处理,跳转到观看页面// // 从【直播列表页面】跳转【观众观看页面】示例// const newParams = new URLSearchParams(searchParams);// newParams.set('liveId', liveInfo.liveId);// // 直播间 ID 放入 URL 参数,观众观看页面可根据 URL 参数进入对应直播间// navigate(`/live-player?${newParams.toString()}`);}};const initLogin = useCallback(async () => {try {await login({SDKAppID: 0, // 请替换为您的 SDKAppID(服务开通时获取)userID: '', // 请替换为您的用户 IDuserSig: '', // 请替换为您的用户签名(详细获取方式请参阅【步骤1:环境配置及开通服务】文档)});await setSelfInfo({userName: '', // 用户昵称,会显示在成员列表、聊天消息中。不设置昵称时,将显示用户 IDavatarUrl: '', // 用户头像,必须为完整的 URL 图片地址,比如:https://your.domain.com/avatar-default.png});} catch (error) {console.error('登录失败:', error);}}, [login, setSelfInfo]);useEffect(() => {async function init() {await initLogin();}if (!loginUserInfo?.userId) {init();} else {console.log('[LiveList]用户已登录:', loginUserInfo.userId);}}, [initLogin, loginUserInfo?.userId]);return (<UIKitProvider theme="dark"><div className={styles.liveList}>{/* 直播列表组件:设置为显示 5 列、注册直播间点击事件处理函数 */}<LiveList columnCount={5} onLiveRoomClick={handleLiveRoomClick} /></div></UIKitProvider>);};export default LiveListView;
.liveList {display: flex;flex-direction: column;width: 100%;height: 100%;background-color: var(--bg-color-topbar);color: var(--text-color-primary);overflow: auto;box-sizing: border-box;}
src/router/index.tsx 文件。然后,在您的主文件(例如 main.tsx 或 App.tsx)中引入并使用路由。可参见 GitHub 代码示例。// src/router/index.tsximport { createHashRouter } from 'react-router-dom';import { LiveListView } from '../views/LiveList';import { LivePlayerView } from '../views/LivePlayer';// 路由保护组件const ProtectedRoute = ({ children }: { children: React.ReactNode; }) => {return (<>{children}</>);};const routes = [// 直播列表{path: '/live-list',element: <LiveListView />,},// // 若您需要实现点击直播列表直播间封面,跳转到直播观看页面功能,则需要配置观看页面路由// // 观看页面详细接入,请参阅【观众观看 -> 观众观看(Web React)】// {// path: '/live-player',// element: <LivePlayerView />,// }];export const router = createHashRouter(routes.map(route => ({...route,element: <ProtectedRoute>{route.element}</ProtectedRoute>,})));
App.tsx 文件中,使用上面的路由组件 src/router/index.tsx。// src/App.tsximport { RouterProvider } from 'react-router-dom'import { router } from './router'import './App.css'function App() {return (<RouterProvider router={router} />)}export default App
npm run dev
UIKitProvider 参数 | 可选值 | 默认值 |
theme | "light" | "dark" | "light" |
language | "zh-CN" | "en-US" | - |
import { RouterProvider } from 'react-router-dom'import { UIKitProvider } from '@tencentcloud/uikit-base-component-react'import { router } from './router'import './App.css'function App() {return (<UIKitProvider theme="dark" language='zh-CN'><RouterProvider router={router} /></UIKitProvider>);}export default App
// ... 省略其它依赖引入import { UIKitProvider } from '@tencentcloud/uikit-base-component-react'const LiveListView: React.FC = () => {// ... 省略其它代码return (<UIKitProvider theme="dark"><div className={styles.liveList}><LiveList columnCount={5} onLiveRoomClick={handleLiveRoomClick} /></div></UIKitProvider>);};export default LiveListView;
const initLogin = useCallback(async () => {try {await login({SDKAppID: 0, // SDKAppID 服务开通时获取的 SDKAppIDuserID: '', // UserID 用户 IDuserSig: '', // userSig 用户签名,详细获取方式请参阅【准备工作】文档});await setSelfInfo({userName: '', // 用户昵称,会显示在成员列表、聊天消息中。不设置昵称时,将显示用户 IDavatarUrl: '', // 用户头像,必须为完整的 URL 图片地址,比如:https://your.domain.com/avatar-default.png});} catch (error) {console.error('登录失败:', error);}}, [login, setSelfInfo]);
功能 | 描述 | 集成指引 |
观众观看 | 实现观众进入主播的直播间后观看直播,实现观众连麦、直播间信息、在线观众、弹幕显示等功能。 |
文档反馈