LiveCoreWidget

简介

LiveCoreView 提供了直播推流和播放的视图容器,支持多人连麦、PK 等功能。 通过该组件,可以实现直播间的视频渲染和交互。
重要:
使用前需要先调用 LiveCoreController.setLiveID 设置直播间 ID。

功能特性

视频渲染:提供直播推流和播放的视图容器。
连麦支持:支持多人连麦功能。
PK 支持:支持主播 PK 功能。
房间外预览:支持在进入房间前预览直播流。

数据结构

CoreViewType

核心视图类型。
枚举值
说明
playView
播放视图。
pushView
推流视图。

ViewLayer

视图层级。
枚举值
说明
foreground
前景层。
background
背景层。

LiveCoreController

Live core widget controller protocol
方法
create: 创建 LiveCoreController。
static LiveCoreController create(CoreViewType type) {
return LiveCoreControllerImpl(type);
}
参数名
类型
说明
type
核心视图类型。
setLiveID: 设置直播ID。应该在使用其他接口之前先设置直播ID。
void setLiveID(String liveID);
参数名
类型
说明
liveID
String
直播ID。
startPreviewLiveStream: 房间外预览。
void startPreviewLiveStream(String roomID, bool isMuteAudio, int viewID, TUIPlayCallback? playCallback);
参数名
类型
说明
roomID
String
直播ID。
isMuteAudio
bool
是否静音。
playCallback
TUIPlayCallback?
播放回调。
stopPreviewLiveStream: 停止房间外预览。
void stopPreviewLiveStream(String roomID);
参数名
类型
说明
roomID
String
直播ID。
callExperimentalAPI: 调用实验性API。
static void callExperimentalAPI(String jsonStr) {
LiveCoreControllerImpl.callExperimentalAPI(jsonStr);
}

VideoViewAdapter

视频视图适配器协议。
方法
createCoGuestView: 创建连麦视图。
CoGuestWidgetBuilder coGuestWidgetBuilder = (BuildContext context, SeatInfo seatInfo, ViewLayer viewPlayer) {
return Container();
};
参数名
类型
说明
seatInfo
连麦用户的麦位信息。
viewLayer
视图层级,前景层或背景层。
createCoHostView: 创建跨房连麦视图。
CoHostWidgetBuilder coHostWidgetBuilder = (BuildContext context, SeatInfo seatInfo, ViewLayer viewPlayer) {
return Container();
};
参数名
类型
说明
seatInfo
跨房连麦用户的麦位信息。
viewLayer
视图层级,前景层或背景层。
createBattleView: 创建PK视图。
BattleWidgetBuilder battleWidgetBuilder = (BuildContext context, SeatInfo seatInfo) {
return Container();
};
参数名
类型
说明
seatInfo
PK用户的麦位信息。
createBattleContainerView: 创建PK容器视图。
BattleContainerWidgetBuilder battleContainerWidgetBuilder = (BuildContext context) {
return Container();
};

VideoWidgetBuilder({
CoGuestWidgetBuilder? coGuestWidgetBuilder,
CoHostWidgetBuilder? coHostWidgetBuilder,
BattleWidgetBuilder? battleWidgetBuilder,
BattleContainerWidgetBuilder? battleContainerWidgetBuilder,
}) {
if (coGuestWidgetBuilder != null) this.coGuestWidgetBuilder = coGuestWidgetBuilder;
if (coHostWidgetBuilder != null) this.coHostWidgetBuilder = coHostWidgetBuilder;
if (battleWidgetBuilder != null) this.battleWidgetBuilder = battleWidgetBuilder;
if (battleContainerWidgetBuilder != null) this.battleContainerWidgetBuilder = battleContainerWidgetBuilder;
}