Audience Viewing
TUILiveKit's audience viewing page provides users with various and convenient live streaming and interaction features, enabling quick integration into your application to meet diverse audience needs.
Feature Overview
Live streaming: Clear and smooth viewing of the host's real-time live stream.
Interactive co-guest: Apply for mic connection to interact with the host via audio and video.
Live information: View the live streaming room title, description, and audience list, etc.
Live interactive: Send a gift (with animation effects and host notification), like (with animation and real-time statistics), and interact via bullet screen.
Live Streaming | Interactive co-guest | Live Information | Live Interactive |
![]() |
![]() | ![]() | ![]() |
Quick Start
Step 1. Activate the Service
Step 2. Code Integration
Step 3. Add an Audience Viewing view
In your audience view controller
YourAudienceViewController, initialize and add AudienceContainerView for audience streaming://YourAudienceViewControllerrepresents the view controller for your audience viewing pageclassYourAudienceViewController: UIViewController {// 1. Declare audienceView as a member variableprivate let audienceView:AudienceContainerView// 2. Add a convenient constructor:// - roomId: The id of the live streaming roompublic init(roomId: String) {// 3.Initialize the AudienceContainerView componentself.audienceView = AudienceContainerView(roomId: roomId)super.init(nibName: nil, bundle: nil)}public override func viewDidLoad() {super.viewDidLoad()// 4. Add audienceView to viewview.addSubview(audienceView)audienceView.snp.makeConstraints { make inmake.edges.equalToSuperview()}}}
Step 4. Navigate to the Audience Viewing view
Usually in the live list, Use the following code example when you need to jump to the viewer watching page:
// 1. Instantiate your audience viewing view controllerlet audienceVC =YourAudienceViewController(roomId: "Your live streaming room id")audienceVC.modalPresentationStyle = .fullScreen// 2. Navigate to your audience viewing view controllerpresent(audienceVC, animated: false)
Customize Your UI Layout
Customize the AudienceContainerView Feature Area
By calling the API of Step 3 created
audienceView, you can customize and disable (hide) the operation area or specific features on the viewer watching page://YourAudienceViewControllerrepresents the view controller for your audience viewing pageclassYourAudienceViewController: UIViewController {private let audienceView:AudienceContainerViewpublic init(roomId: String) {self.audienceView = AudienceContainerView(roomId: roomId)super.init(nibName: nil, bundle: nil)}public override func viewDidLoad() {super.viewDidLoad()// 1. Add audienceView to viewview.addSubview(audienceView)audienceView.snp.makeConstraints { make inmake.edges.equalToSuperview()}// 2. Custom function area example - Forbid swiping to switch live roomsaudienceView.disableSliding(true)}}
API | Description |
disableHeaderLiveData(true) | Hide Top Operation Section Live Information |
disableHeaderFloatWin(true) | Hide Top Operation Section Floating Window Feature |
disableHeaderVisitorCnt(true) | Hide Top Operation Section Audience List Function |
disableFooterCoGuest(true) | Hide Bottom Operation Section Co-Anchoring Function |
disableSliding(true) | Forbid Swiping to Switch Live Rooms |
Text Customization (Localization)
TUILiveKit uses the Apple Strings Catalog(
.xcstrings) format, introduced in Xcode 15, to manage the text displayed in the UI. You can modify the string resources using Xcode's graphical interface:Note:
Apple Strings Catalog (.xcstrings) is a localization format introduced in Xcode 15. It enhances how developers manage localized strings, supporting a structured format to handle plurals, device-specific variants, etc. This format is becoming the recommended way to manage localization for iOS and macOS applications.

Icon Customization (Image Assets)
TUILiveKit uses
TUILiveKit.xcassets to manage the image resources for the UI. You can quickly modify the custom icons using Xcode's graphical tools.
Next Steps
Congratulations! You have successfully integrated Audience Viewing. Next, you can implement features such as Host Live Streaming and the Live Stream List. Please refer to the table below:
Feature | Description | Integration Guide |
Host Streaming | The complete workflow for a host to start a stream, including pre-stream setup and various in-stream interactions. | |
Live Stream List | Display the live stream list interface and features, including the live stream list and room information display. |
FAQs
Why is the video screen black when a viewer selects video co-hosting?
Please go to Phone Settings > App > Camera, check whether camera permission is enabled, Refer to the image below:

Why can't other viewers in the live room see the barrage content sent by a viewer?
Reason 1: First check the network connection to ensure the viewer's device network is normal.
Reason 2: The viewer has been muted (banned) by the host and cannot send barrage.
Reason 3: The viewer's barrage content involves keyword blocking. Please confirm whether the content sent by the viewer complies with the live room rules.



