• 서비스
  • 가격
  • 리소스
  • 기술지원
이 페이지는 현재 영어로만 제공되며 한국어 버전은 곧 제공될 예정입니다. 기다려 주셔서 감사드립니다.

Host Streaming

The TUILiveKit Host Live Streaming Page provides a full-featured UI for live streaming scenarios. It supports the rapid deployment of core host capabilities, allowing you to efficiently integrate the live streaming workflow without worrying about complex UI and logic implementation.

Feature Overview

Pre-stream Setup: Supports various personalized configurations before the host goes live, including room name, background, video preview, beauty filters (beauty effects) debugging, audio effects debugging, and layout templates.
Co-Host Interaction: Supports real-time interaction (co-hosting) with viewers or other hosts during the live stream.
Audience Interaction: Supports rich interaction forms such as barrage (bullet screen) and gifts.
Live Room Management: Supports displaying the online user list and various management operations within the room, such as muting (banning) and kicking users.
Pre-stream Setup
Co-Host Interaction
Audience Interaction
Live Room Management














Quick Start

Step 1. Activate the Service

Refer to the Activate Service document to enable the trial version or activate the Pro Edition package.

Step 2. Install the TUILiveKit

Refer to Preparations guide to integrate the TUILiveKit SDK.

Step 3. Add Host Page

TUILiveRoomAnchorWidget has built-in complete UI and business logic for live-streaming scenarios. This component does not support floating window mode. If you need floating window functionality, navigate to Add Floating Window (Host Page). Simply configure the entry point for invoking TUILiveRoomAnchorWidget (based on your business logic), then use one of the following methods to navigate to or embed the host page within your Widget tree:
Direct Navigation
Integrate Into Widget Tree
import 'package:tencent_live_uikit/tencent_live_uikit.dart';

// navigate to the host webpage
Navigator.push(context, MaterialPageRoute(
builder: (BuildContext context) {
final roomId = "test_live_room_id";
return TUILiveRoomAnchorWidget(roomId: roomId);
}));

// --- Select a way to integrate based on your Widget tree structure ---

// [option one] as the only child Widget (single subtree)
// Suitable for containers like Container, Padding that usually only contain one child Widget
Container(
child: TUILiveRoomAnchorWidget(roomId: roomId) // integrate the host page here
)

// [option two] as one of multiple child Widgets (multi-subtree)
// Suitable for layouts like Column, Row, Stack that can contain multiple child Widgets
Stack(
children: [
YourOtherWidget(), // your other child Widget
TUILiveRoomAnchorWidget(roomId: roomId), // integrate the host page here
YourOtherWidget(), // your other child Widget
])
After integration, launching this code will display the host page, as shown in in the live streaming preview image of Feature Overview.

Step 4. (Optional) Add a Floating Window

TUILiveRoomAudienceOverlay enables floating window mode for the audience viewing page. During a live stream, you can switch between in-app and out-of-app (Picture-in-Picture) floating window modes. TUILiveRoomAudienceOverlay is built using Flutter’s official Overlay API and native Picture-in-Picture. To integrate:

1. Enable System Picture-in-Picture

Refer to Project Configuration to enable the system Picture-in-Picture feature.

2. Add a Secondary Navigator

Refer to Floating Live Room Configuration to add a new secondary navigator in the App. This navigator hosts the live streaming page, keeping it separate from your main navigation stack and enabling floating window effects.

3. Navigate to the Floating Window

At the entry point where your audience enters the room (based on your business logic), navigate to the viewing page as follows:
import 'package:tencent_live_uikit/tencent_live_uikit.dart';

// Navigate to the Anchor webpage
Navigator.push(context, MaterialPageRoute(
builder: (BuildContext context) {
final roomId = "test_live_room_id";
return TUILiveRoomAnchorOverlay(roomId: roomId);
}));
Note:
1. TUILiveRoomAudienceOverlay cannot be embedded as a child widget in container widgets (such as Container, Stack, etc.); it must be navigated to as a standalone page. This is because Overlay is used internally, and LiveKit needs to control the entire Overlay page to switch floating window modes.
2. On iOS, only regular audience members can enter out-of-app floating window mode.

Floating Window Mode Effect

Click the floating window button at the top right of the host page to enter floating window mode, as shown below.


Out-of-App Floating Window Effect

Click More > Picture-in-Picture at the bottom-right corner of the host page, then toggle on the PIP switch. When your App goes into the background, it will automatically proceed to system Picture-in-Picture mode, as shown below.


Customize UI Layout

TUILiveKit lets you tailor the go-live and live stream page features and styles to fit your business requirements.

Live Room Layout Templates

TUILiveKit provides 4 layout templates. Select your preferred style in the Layout section of the host go-live page:


Layout Template Overview

Name
Dynamic Grid Layout
Floating Window Layout
Fixed Grid Layout
Fixed Window Layout
Template ID
600
601
800
801
Description
Default layout.
Grid size automatically adjusts based on the number of co-hosts.
Co-hosts are displayed in floating windows.
Fixed number of co-hosts, each in a dedicated grid.
Fixed number of co-hosts, each in a dedicated window.
Preview













Text Customization (ARB)

TUILiveKit uses ARB files and the Flutter standard internationalization (i18n) solution to manage the UI text display. You can directly edit the ARB files in the livekit/lib/common/language/i10n/ directory to modify the text:

livekit_en.arb: English Text.
livekit_zh.arb: Simplified Chinese Text.
livekit_zh_Hant.arb: Traditional Chinese Text.
After making changes, execute flutter gen-l10n in the command line to regenerate the localization code.

Icon Customization (Image Assets)

TUILiveKit’s UI image assets are stored in the livekit/assets/images/ directory. To update icons, simply replace the PNG files in this folder.

Rebuild and run the application, and you will see the updated icon.

Next Steps

Congratulations! You have successfully integrated the Host Live Streaming component. Next, you can implement features such as audience viewing and live stream list. Please refer to the table below:
Feature
Description
Integration Guide
Audience Viewing
Audience can watch live streaming after entering the anchor's live streaming room, with features like audience mic connection, live room information, online audience, and bullet screen display.
Live Stream List
Display the live stream list interface and features, including the live stream list and room information display.

FAQs

No Video After Going Live?

Go to Settings > App > Camera and make sure camera permissions are enabled. See the examples below:
iOS
Android







"Not Logged In" Prompt When Starting Live Streaming?

See Complete Login to verify that login integration is complete.

Why can’t the app enter out-of-app floating window (Picture-in-Picture) mode when in the background?

Refer to Out-Of-Application Floating Window Mode. After entering the live room, enable the Picture-in-Picture switch.
On Android, after enabling Picture-in-Picture, the app will automatically check the system setting. If Picture-in-Picture is not enabled, the app will prompt you to allow this mode in system settings:


Why do pop-up windows not appear or get covered?

If you have integrated TUILiveRoomAudienceOverlay, ensure that pop-up components (such as BottomSheet, Dialog, etc.) use the rootNavigator context (recommended: Global.appContext()).
Reason: The live streaming page Overlay is rendered on the secondaryNavigator. Pop-ups using the secondaryNavigator context will be obstructed by the Overlay because, on the same Navigator, the Overlay layer is above regular pages, allowing it to float above them. Using the rootNavigator ensures pop-ups display correctly above the Overlay.