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

Refer to the Activate Service document to enable the Free trial or official package.

Step 2. Code Integration

Refer to Preparations guide to integrate the TUILiveKit SDK.

Step 3. Add an Audience Viewing view

In your audience view controller YourAudienceViewController, initialize and add AudienceContainerView for audience streaming:
Swift
// YourAudienceViewController represents the view controller for your audience viewing page
class YourAudienceViewController: UIViewController {

// 1. Declare audienceView as a member variable
private let audienceView: AudienceContainerView

// 2. Add a convenient constructor:
// - roomId: The id of the live streaming room
public init(roomId: String) {
// 3. Initialize the AudienceContainerView component
self.audienceView = AudienceContainerView(roomId: roomId)
super.init(nibName: nil, bundle: nil)
}

public override func viewDidLoad() {
super.viewDidLoad()
// 4. Add audienceView to view
view.addSubview(audienceView)
audienceView.snp.makeConstraints { make in
make.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:
Swift
// 1. Instantiate your audience viewing view controller
let audienceVC = YourAudienceViewController(roomId: "Your live streaming room id")
audienceVC.modalPresentationStyle = .fullScreen
// 2. Navigate to your audience viewing view controller
present(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:
Swift
// YourAudienceViewController represents the view controller for your audience viewing page
class YourAudienceViewController: UIViewController {

private let audienceView: AudienceContainerView

public init(roomId: String) {
self.audienceView = AudienceContainerView(roomId: roomId)
super.init(nibName: nil, bundle: nil)
}

public override func viewDidLoad() {
super.viewDidLoad()
// 1. Add audienceView to view
view.addSubview(audienceView)
audienceView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
// 2. Custom function area example - Forbid swiping to switch live rooms
audienceView.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.