直播列表

功能介绍

TUILiveKit 已经支持了房间列表 UI 组件TUILiveListFragment ,房间列表组件可以帮您展示当前应用下所有的在线直播和语音聊天室的直播间,当您接入房间列表 UI组件后,只需要点击列表中的某个直播间,就可以实时观看当前主播的直播内容。进入直播间后您还可以通过弹幕、礼物、连麦等功能和主播进行实时互动。
房间列表组件
观看直播
和主播连麦










功能接入

说明:
请务必确保已经按照 快速接入(TUILiveKit) 完成登录操作。只有TUILogin.login登录成功后才能正常进入直播预览画面。
1. 在需要显示房间列表 UI组件的 xml 中添加 FrameLayout 布局。
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/fl_live_list" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
2. 通过加载 TUILiveKit 的 TUILiveListFragment 页面到 xml 中定义的布局上,就可以展示房间列表。
Java
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.app_activity_main);

FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); TUILiveListFragment listFragment = new TUILiveListFragment(); fragmentTransaction.add(R.id.fl_live_list, listFragment); fragmentTransaction.commit(); } }

功能定制

如果当前的 UI 不满足您的需求,您可以通过修改Android/tuilivekit/src/Main/java/com/trtc/uikit/livekit/common/uicomponent/roomlist 目录下的源代码,来实现您满意的 UI 效果。为了您更方便的定制 UI,这里对房间列表相关的文件做了介绍。
// 文件位置:Android/tuilivekit/src/Main/java/com/trtc/uikit/livekit/common/uicomponent/

roomlist // 直播间列表组件的实现目录
├── service // 直播间列表组件 的服务层目录
│ └── RoomListService.java // 直播间列表组件服务层的具体实现,封装了直播间列表相关的 api
├── store // 直播间列表组件 的数据层目录
│ └── RoomListState.java // 直播间列表组件 数据的具体封装类
└── view // 直播间列表组件 的视图层目录
├── adapter // 直播间列表组件 的视图层的适配器目录
│ ├── LoadMoreAdapterWrapper.java // 直播间列表组件 对直播间列表适配器扩展了下拉加载功能的适配器
│ └── RoomListAdapter.java // 直播间列表组件 的直播间列表适配器
├── ListAudienceActivity.java // 直播间列表组件 中点击某一个直播间,拉起的直播拉流页面
└── RoomListView.java // 直播间列表组件 直播间列表视图的实现

关键代码

获取直播间列表插件

Java
// 文件位置:Android/tuilivekit/src/Main/java/com/trtc/uikit/livekit/common/uicomponent/roomlist/service/RoomListService.java

private final TUILiveListManager mTUILiveListManager;
mTUILiveListManager = (TUILiveListManager) TUIRoomEngine.sharedInstance().getExtension(LIVE_LIST_MANAGER);

通过插件获取直播间列表

Java
// 文件位置:Android/tuilivekit/src/Main/java/com/trtc/uikit/livekit/common/uicomponent/roomlist/service/RoomListService.java

private static final int FETCH_LIST_COUNT = 20;
public String cursor = "";
mTUILiveListManager.fetchLiveList(cursor, FETCH_LIST_COUNT, new LiveInfoListCallback() { @Override public void onSuccess(LiveInfoListResult result) { } @Override public void onError(TUICommonDefine.Error error, String s) { } });