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();};
createCoHostView: 创建跨房连麦视图。
CoHostWidgetBuilder coHostWidgetBuilder = (BuildContext context, SeatInfo seatInfo, ViewLayer viewPlayer) {return Container();};
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;}