观众观看(Android)

最近更新时间:2025-09-18 11:20:02

我的收藏
TUILiveKit 的观众观看页为用户提供了丰富且便捷的直播观看与互动功能,能快速集成到您的应用中,满足观众多样化的需求。

功能概览

直播观看:清晰、流畅观看主播实时直播画面。
互动连麦:申请连麦,与主播进行音视频互动。
直播信息:查看直播间标题、简介,及在线观众列表等信息。
直播互动:送礼物(有动画特效,主播接收提示)、点赞(有动画及实时统计)、发弹幕互动。
直播观看
互动连麦
直播信息
直播互动















快速接入

步骤 1. 开通服务

参考 开通服务 文档开通「体验版」或「大规模直播版」套餐。

步骤 2. 代码集成

参考 准备工作 接入 TUILiveKit。

步骤 3. 添加观众观看页面

在您的观众观看页 Activity 中 初始化添加 AudienceContainerView 观众观看视图:
Kotlin
Java
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.trtc.uikit.livekit.features.audiencecontainer.AudienceContainerView
import com.trtc.uikit.livekit.features.audiencecontainer.AudienceContainerViewDefine.AudienceContainerViewListener

class YourAudienceActivity : AppCompatActivity() {
lateinit var audienceContainerView: AudienceContainerView
lateinit var listener: AudienceContainerViewListener

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 1. 创建 AudienceContainerView
audienceContainerView = AudienceContainerView(this)
val roomId = "1236666"
// 2. 初始化 AudienceContainerView
audienceContainerView.init(this, roomId)

// 3. (可选)添加 AudienceContainerView 事件监听
listener = object : AudienceContainerViewListener {
override fun onLiveEnded(roomId: String?, ownerName: String?, ownerAvatarUrl: String?) {
// 直播结束事件,您可以按照您的业务需求处理该事件,此处代码示例:直播结束后结束当前页面
finish()
}

override fun onPictureInPictureClick() {
// 画中画按钮点击事件,您可以按照您的业务需求处理该事件,此处代码示例:点击画中画按钮后,将当前页面转换为画中画模式
enterPictureInPictureMode()
}
}
audienceContainerView.addListener(listener)
// 4. 将 AudienceContainerView 添加到界面
setContentView(audienceContainerView)
}

override fun onDestroy() {
// 5. (可选)若您添加了事件监听器,则需要在页面销毁时移除监听器
audienceContainerView.removeListener(listener)
super.onDestroy()
}
}
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.trtc.uikit.livekit.features.audiencecontainer.AudienceContainerView;
import com.trtc.uikit.livekit.features.audiencecontainer.AudienceContainerViewDefine;

public class YourAudienceActivity extends AppCompatActivity {
private AudienceContainerView mAudienceContainerView;
private AudienceContainerViewDefine.AudienceContainerViewListener mListener;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 1. 创建 AudienceContainerView
mAudienceContainerView = new AudienceContainerView(this);
// 2. 初始化 AudienceContainerView
String roomId = "1236666";
mAudienceContainerView.init(this, roomId);
// 3. (可选)添加 AudienceContainerView 事件监听
mListener = new AudienceContainerViewDefine.AudienceContainerViewListener() {
@Override
public void onLiveEnded(String roomId, String ownerName, String ownerAvatarUrl) {
// 直播结束事件,您可以按照您的业务需求处理该事件,此处代码示例:直播结束后结束当前页面
finish();
}

@Override
public void onPictureInPictureClick() {
// 画中画按钮点击事件,您可以按照您的业务需求处理该事件,此处代码示例:点击画中画按钮后,将当前页面转换为画中画模式
enterPictureInPictureMode();
}
};
mAudienceContainerView.addListener(mListener);
// 4. 将 AudienceContainerView 添加到界面
setContentView(mAudienceContainerView);
}

@Override
protected void onDestroy() {
// 5. (可选)若您添加了事件监听器,则需要在页面销毁时移除监听器
mAudienceContainerView.removeListener(mListener);
super.onDestroy();
}
}

步骤 4. 跳转到观众观看页面

在您需要点击跳转到观众观看页时,可参考如下代码示例:
Kotlin
Java
fun startActivity(context: Context) {
val intent = Intent(context, YourAudienceActivity::class.java)
intent.putExtra("roomId", "1236666")
context.startActivity(intent)
}
private void startActivity(Context context){
Intent intent = new Intent(context, YourAudienceActivity.class);
intent.putExtra("roomId", "1236666");
context.startActivity(intent);
}

自定义您的界面布局

自定义观众观看页功能区

通过调用 步骤 3 创建的 audienceView 的 API,可自定义隐藏观众观看页的操作区或特定功能:
Kotlin
Java
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.trtc.uikit.livekit.features.audiencecontainer.AudienceContainerView

class YourAudienceActivity : AppCompatActivity() {
lateinit var audienceContainerView: AudienceContainerView

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 1. 创建并初始化 AudienceContainerView
audienceContainerView = AudienceContainerView(this)
val roomId = "1236666"
audienceContainerView.init(this, roomId)
// 2. 自定义功能区 示例 - 禁止上下滑动切换直播间
audienceContainerView.disableSliding(true)
// 3. 将 AudienceContainerView 添加到界面
setContentView(audienceContainerView)
}
}
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.trtc.uikit.livekit.features.audiencecontainer.AudienceContainerView;

public class YourAudienceActivity extends AppCompatActivity {
private AudienceContainerView mAudienceContainerView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 1. 创建并初始化 AudienceContainerView
mAudienceContainerView = new AudienceContainerView(this);
String roomId = "1236666";
mAudienceContainerView.init(this, roomId);

// 2. 自定义功能区 示例 - 禁止上下滑动切换直播间
mAudienceContainerView.disableSliding(true);

// 3. 将 AudienceContainerView 添加到界面
setContentView(mAudienceContainerView);
}
}
隐藏顶部操作区直播信息
隐藏顶部操作区悬浮窗功能
隐藏顶部操作区中的观众列表功能
隐藏底部操作区的连麦功能
禁止上下滑动切换直播间
disableHeaderLiveData(true)
disableHeaderFloatWin(true)
disableHeaderVisitorCnt(true)
disableFooterCoGuest(true)
disableSliding(true)
















文案定制

TUILiveKit 使用 Android 通用的 XML 资源文件来管理 UI 所需的文案显示,您可以直接通过 XML 文件修改需要调整的文案:


图标定制

TUILiveKit 使用Android 通用的 drawable 资源文件夹管理 UI 所需的图片资源,您可以通过替换资源文件快速修改自定义界面所需的图标,替换时请确保新的文件名称与原文件名称一致。


下一步

恭喜您,现在您已经成功集成了观众观看。接下来,您可以实现主播开播直播列表等功能,可参考下表:
功能
描述
集成指引
主播开播
主播开播全流程功能,包括开播前的准备和开播后的各种互动
直播列表
展示直播列表界面和功能,包含直播列表,房间信息展示功能

常见问题

观众选择视频连麦后,视频画面显示黑屏?

请前往应用信息 > 权限 > 相机,检查摄像头权限是否开启,可参考下图:


观众发送弹幕时,直播间内其他观众看不到弹幕内容?

原因 1: 先检查网络连接,确保观众设备网络正常。
原因 2: 该观众被主播禁言,无法发送弹幕。
原因 3:观众的弹幕内容涉及 关键词屏蔽,请确认观众发送的弹幕内容是否符合直播间规则。

如何将 TUILiveKit 观众送礼与自己的计费业务后台对接?

TUILiveKit 为直播场景下的观众送礼提供了完整互动解决方案,您可以参考 直播送礼 这篇文档完成礼物系统对接