TUIRoomKit

repository·main·Indexed 41 days ago

https://github.com/tencent-rtc/tuiroomkit

A high-level UI component library for building multi-person video conferencing applications, such as meetings and online classes, across Web, Mobile, and Desktop platforms. It provides abstractions for room and member management, screen sharing, and audio/video interactions, integrating with Tencent Cloud TRTC and IM services.

Tokens
131.5K
Snippets
379
Records
564
Agent score
48%

What's inside TUIRoomKit

  1. Overview of TUIRoomKit

    main
    TUIRoomKit is a video conferencing product designed for multi-person audio and video scenarios, including business meetings, webinars, and online education. It provides high-level abstractions for room management, member management, and screen sharing, allowing developers to integrate full conferencing capabilities into an application quickly.
  2. Overview of TUIRoomKit for Flutter

    main

    TUIRoomKit is a UI component solution from Tencent Cloud designed for enterprise meetings, online classrooms, and web salons. It allows developers to add video conferencing capabilities to their apps with minimal code.

    Key Features:

    • Easy Integration: Provides open-source UI components to save ~90% of development time.
    • Cross-platform Interoperability: Components work seamlessly across different platforms.
    • Screen Sharing: Optimized screen capture and AI encoding for clear video at low bitrates.
    • Member Management: Standard room controls like global mute, individual mute/video disable, inviting speakers, and kicking members.
    • Additional Features: Supports chat bullet messages (danmaku) and audio settings.
  3. Overview of TUIRoomKit Vue3 Components

    main

    TUIRoomKit provides two sets of complete UI view components for different stages of a video conference:

    Pre-Conference Views

    Used for device detection and meeting information confirmation before joining.

    • PreConferenceView: Desktop view.
    • PreConferenceViewH5: H5 mobile view.

    In-Conference Views

    Used during the active meeting, including audio/video, chat, and member management.

    • ConferenceMainView: Desktop main view.
    • ConferenceMainViewH5: H5 mobile main view.

    Note: These components fill their parent container. Ensure the host container has defined dimensions (e.g., width: 100%; height: 100vh;).

  4. Overview of chat-uikit-uniapp

    main

    chat-uikit-uniapp (supporting both Vue2 and Vue3) is a UI component library for uni-app based on the Tencent Cloud Chat SDK. It provides ready-to-use UI components for common chat features such as conversations, chats, groups, and relationship chains, allowing for rapid development of reliable and scalable chat applications.

    Supported Platforms:

    • Android
    • iOS
    • WeChat Mini Programs
    • H5
  5. Overview of TUIRoomKit

    main

    TUIRoomKit is a UI component solution from Tencent Cloud designed for enterprise meetings, online classrooms, and web salons. It allows developers to add video conferencing capabilities to their applications with minimal code.

    Key Features:

    • Rapid Integration: Provides open-source UI components to save approximately 90% of development time.
    • Cross-Platform Interoperability: Components across different platforms (Android, iOS, Flutter, Web, Electron) can communicate seamlessly.
    • Screen Sharing: High-quality screen capture and AI-powered encoding for clear video at low bitrates.
    • Member Management: Standard room controls including global mute, individual mute/video disable, inviting members to speak, and kicking members from the room.
    • Additional Features: Supports room chat/bullet comments, audio settings, and more.
  6. Overview of TUIRoomKit React Components

    main

    TUIRoomKit provides two main UI view components for different stages of a video conference:

    • PreConferenceView: A pre-conference view used for device checks and meeting information confirmation.
    • ConferenceMainView: The main conference view, containing full audio/video, chat, and member management features.

    Note on Layout: Both components will fill their parent container (width/height: 100%). You must provide a container with a defined height (e.g., 100vh for fullscreen).

    import { UIKitProvider } from '@tencentcloud/uikit-base-component-react';
    import { ConferenceMainView } from '@tencentcloud/roomkit-web-react';
    
    export default function App() {
      return (
        <UIKitProvider theme="light" language="zh-CN">
          {/* Fullscreen: size the host; RoomKit fills the parent */}
          <div className="roomkit-host">
            <ConferenceMainView />
          </div>
        </UIKitProvider>
      );
    }
  7. Overview of TUIRoomKit Web

    main

    TUIRoomKit Web is a multi-user audio and video room solution designed for rapid deployment of video conferencing features. It provides a complete UI solution including:

    • Audio and video communication
    • Screen sharing
    • Member management
    • Muting audio and disabling video
    • Chatting and bullet comments (danmaku)

    It is suitable for enterprise meetings, online education, internet medical consultations, and web salons. The repository contains both the source code and runnable examples for Vue and React.

  8. Overview of chat-uikit-vue

    main

    chat-uikit-vue is a Vue UI component library built on top of the Tencent Cloud Chat SDK. It provides pre-built UI components to quickly implement chat functionality, including:

    • Conversation Management: View unread messages, recent chats, pinned, or deleted conversations.
    • Chat Components: Interfaces for sending and receiving various message types (text, images, audio, video).
    • Group Management: Tools to create groups, manage members, and customize profiles.
    • Notifications: Support for online/offline push notifications.

    Note: The default emoji pack is copyrighted by Tencent Cloud. For commercial use, you should replace them with your own emoji packs or obtain authorization via a support ticket.

  9. TUIRoomKit iOS Project Directory Structure

    main

    Understanding the organization of the iOS example project:

    • TUIRoomKit/Example/App: UI code for entering/creating video conferences, including images and internationalization resources.
    • TUIRoomKit/Example/Debug: Key business logic code required for debugging and running the project.
    • TUIRoomKit/Example/Login: UI and business logic for the login process.
    • TUIRoomKit/Example/TXReplayKit_Screen: Logic for screen sharing.
    • TUIRoomKit/TUIRoomKit: The core UI code for multi-party video conferencing, including images and internationalization resources.
  10. Explore TUIRoomKit Web demos and source code

    main

    The repository contains quick run-through demos and the core source code for different frameworks:

    Quick Run-through Demos (/example)

    • vite-react-ts: Vite + React + TypeScript
    • vite-vue3-ts: Vite + Vue 3 + TypeScript
    • webpack-vue2.7-ts: Webpack + Vue 2.7 + TypeScript

    Source Code (/roomkit)

    • react: TUIRoomKit source code for React
    • vue3: TUIRoomKit source code for Vue 3
    • vue2: TUIRoomKit source code for Vue 2.7
  11. Android Sample Project Directory Structure

    main

    The Android sample project is organized into the following modules:

    • app: The main panel and entry point for multi-user audio/video interaction scenarios.
    • debug: Contains debugging-related utilities, including the test user signature generator.
    • timcommon: Common components used for the chat interface.
    • tuichat: The chat interface component.
    • tuiroomkit: The core business logic for multi-user audio/video rooms.
  12. Understand MDT Consultation Permissions

    main

    The template supports the attending doctor inviting consultation doctors to join the room. Permissions are defined as follows:

    CapabilityAttending DoctorConsultation DoctorPatient
    Invite consultation doctorsYesNoNo
    Remove membersYesNoNo
    Manage patient devicesYesNoNo
    View business workspaceYesNoYes (per client policy)
    Chat / TranscriptionYesYesYes (per client policy)
    Audio/Video participationYesYesYes

    Related Logic Files:

    • src/features/consultation/components/ConsultationVideoStage.vue (UI Stage)
    • src/features/consultation/useConsultationParticipants.ts (Participant logic)
    • src/features/consultation/useConsultationPermissions.ts (Permission logic)