一、步骤1:开通服务
参考 开通服务 文档开通体验版或大规模直播版套餐。
二、步骤2:代码集成
参考 准备工作 接入 TUILiveKit。
三、步骤3:集成观众列表组件
你可以通过代码或 XML 两种方式创建 AudienceListView。
·在代码中创建:
AudienceListView audienceListView = new AudienceListView(getContext());
·在 XML 布局文件中定义:
<com.trtc.uikit.livekit.component.audiencelist.AudienceListView android:id="@+id/audience_list_view" android:layout_width="135dp" android:layout_height="24dp" android:layout_gravity="end" />
四、步骤4:初始化组件
在成功进入直播间后,调用 AudienceListView 的 init 方法,以绑定数据和事件。
注意:说明:
注意:此操作必须在进房成功的回调中执行。
audienceListView.init(roomInfo);
五、自定义组件
观众列表组件提供了直播间内的观众点击回调接口,该回调支持你根据自己的业务需求实现直播间内的观众管理。
六、组件接口
| 接口 | 参数 | 说明 |
| onUserItemClick | TUIRoomDefine.UserInfo | 观众列表点击回调 |
七、实现观众管理
默认情况下,点击观众列表中的用户会弹出管理弹框。你可以通过实现 onUserItemClick 回调,并通过 LiveAudienceStore 来执行具体操作,例如实现将用户踢出直播间的功能:
import android.os.Bundleimport androidx.appcompat.app.AlertDialogimport androidx.appcompat.app.AppCompatActivityimport com.tencent.cloud.tuikit.engine.extension.TUILiveListManagerimport com.tencent.cloud.tuikit.engine.room.TUIRoomDefineimport com.trtc.uikit.livekit.Rimport com.trtc.uikit.livekit.component.audiencelist.AudienceListViewimport io.trtc.tuikit.atomicxcore.api.live.LiveAudienceStoreclass YourAnchorActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_your_anchor) // 1.定义观众列表组件 var audienceListView = AudienceListView(this@YourAnchorActivity) var liveInfo = TUILiveListManager.LiveInfo().apply { roomId = "yourLiveId" } // 2.初始化组件,传入直播间信息 audienceListView.init(liveInfo) // 3.设置监听器,监听用户点击事件 audienceListView.setOnUserItemClickListener(object : AudienceListView.OnUserItemClickListener { override fun onUserItemClick(userInfo: TUIRoomDefine.UserInfo) { // 4.处理用户点击事件,例如踢出直播间 kickUserOutOfRoom(liveInfo.roomId, userInfo) } }) } private fun kickUserOutOfRoom(liveId: String, userInfo: TUIRoomDefine.UserInfo) { AlertDialog.Builder(this@YourAnchorActivity) .setTitle("观众管理") .setMessage("你是否要将${userInfo.userName}踢出直播间") .setPositiveButton("确定") { dialog, which -> LiveAudienceStore.create(liveId).kickUserOutOfRoom(userInfo.userId, null) dialog.dismiss() } .setNegativeButton("取消") { dialog, which -> dialog.dismiss() } .create() .show() }}