LiveCoreWidget

API 简介

LiveCoreWidget 是我们开发视频直播 UIKit 的一个基础控件,该核心控件提供了 开播前画面预览、开启视频直播、关闭视频直播,直播间内和观众连线,跨房和其他主播连线等丰富的 API。

API 概览

API
描述
创建 LiveCoreController 对象
创建 LiveCoreWidget 对象。
开启摄像头采集,并将采集到的画面显示到 LiveCoreView 上。
打开本地麦克风
暂停发布本地的音频流
恢复发布本地暂停的音频流
关闭本地摄像头
关闭本地麦克风
主播创建直播间并开始推流
主播停止推流并销毁直播间
观众加入某个主播的直播间
观众离开某个主播的直播间
观众请求和主播连线
观众取消和主播连线的请求
主播响应观众连线的请求
主播断开连线的观众
观众自己停止和主播的连线
主播请求和另外一个直播间的主播连线
主播取消和另外一个直播间的主播连线的请求
主播响应连线请求
主播断开连线
注册一个连线事件回调
反注册一个连线事件回调
发起 PK 请求
取消发起 PK 请求
响应 PK 请求
退出 PK
注册一个 PK 事件回调
反注册一个 PK 事件回调
设置连线主播视频画面的布局模式
预览房间视频流
停止预览房间视频流

API 详情

LiveCoreController

创建一个 LiveCoreController 对象实例。
LiveCoreController()
返回值:LiveCoreController

LiveCoreWidget

创建一个 LiveCoreWidget 对象实例。
LiveCoreWidget(
{super.key,
required this.controller,
this.videoWidgetBuilder});
参数:
参数
类型
含义
key
Key?
Flutter 控制如何用一个新 widget 替换 旧 widget 的参数
controller
LiveCoreWidget 的控制器,负责提供视频直播场景 API
videoWidgetBuilder
自定义视图挂件 widget 构造器
返回值:LiveCoreWidget

startCamera

开始摄像头采集并将采集到的画面显示到 LiveCoreWidget 视图上。
Future<TUIActionCallback> startCamera(bool useFrontCamera)
参数:
参数
类型
含义
useFrontCamera
bool
true:使用前置摄像头;false:使用后置摄像头
返回值:Future<TUIActionCallback>

startMicrophone

打开本地麦克风。
Future<TUIActionCallback> startMicrophone()
返回值:Future<TUIActionCallback>

muteMicrophone

暂停发布本地的音频流。
void muteMicrophone()
返回值:void

unmuteMicrophone

恢复发布本地暂停的音频流。
Future<TUIActionCallback> unmuteMicrophone()
返回值:void

stopCamera

关闭本地摄像头。
void stopCamera()
返回值:void

stopMicrophone

关闭本地麦克风。
void stopMicrophone()
返回值:void

startLiveStream

主播创建直播间并开始推流。
Future<TUIValueCallBack<TUIRoomInfo>> startLiveStream(TUIRoomInfo roomInfo)
参数:
参数
类型
含义
roomInfo
创建直播间的信息
返回值:Future<TUIValueCallBack<TUIRoomInfo>>

stopLiveStream

主播停止推流并销毁直播间。
Future<TUIActionCallback> stopLiveStream()
返回值:Future<TUIActionCallback>

joinLiveStream

观众加入某个主播的直播间。
Future<TUIValueCallBack<TUIRoomInfo>> joinLiveStream(String roomId)
参数:
参数
类型
含义
roomId
String
直播间 ID
返回值:Future<TUIValueCallBack<TUIRoomInfo>>

leaveLiveStream

观众离开某个主播的直播间。
Future<TUIActionCallback> leaveLiveStream()
返回值:Future<TUIActionCallback>

requestIntraRoomConnection

观众请求和主播连线。
Future<TUIActionCallback> requestIntraRoomConnection(
String userId,
int timeout,
bool openCamera)
参数:
参数
类型
含义
userId
String
用户 ID,如果传入主播ID,则代表观众请求和主播连线(传入空字符串时默认代表主播UserID)。为其他用户的UserID时,则代表主播邀请对应userId的用户连线。
timeout
int
请求超时时长,单位: 秒。
openCamera
bool
连麦成功后是否打开摄像头。true:视频连麦, false:语音连麦。
返回值:Future<TUIActionCallback>

cancelIntraRoomConnection

观众取消和主播连线的请求。
Future<TUIActionCallback> cancelIntraRoomConnection(String userId)
参数:
参数
类型
含义
userId
String
取消连麦的用户 ID,如果传入主播ID,则代表观众取消和主播连线的请求(传入空字符串时默认代表主播UserID)。为其他用户的UserID时,则代表主播取消邀请对应 userId 的用户连线。
返回值:Future<TUIActionCallback>

respondIntraRoomConnection

主播响应观众连线的请求。
Future<TUIActionCallback> respondIntraRoomConnection(String userId, bool isAccepted)
参数:
参数
类型
含义
userId
String
主播响应观众连线的观众user ID。若传入主播的User ID,则代表观众响应主播的邀请连线(传入空字符串时默认代表主播UserID)。
isAccepted
bool
是否接受连麦请求,true:同意连麦请求,false:拒绝连麦请求
返回值:Future<TUIActionCallback>

disconnectUser

主播断开连线的观众。
Future<TUIActionCallback> disconnectUser(String userId)
参数:
参数
类型
含义
userId
String
主播需要断开连麦的用户 ID
返回值:Future<TUIActionCallback>

terminateIntraRoomConnection

观众自己停止和主播的连线。
Future<TUIActionCallback> terminateIntraRoomConnection()
返回值:Future<TUIActionCallback>

requestCrossRoomConnection

主播请求和另外一个直播间的主播连线。
Future<TUIValueCallBack<TUIConnectionCode?>> requestCrossRoomConnection(String roomId, int timeout)
参数:
参数
类型
含义
roomId
String
请求跨房连线的房间 ID。
timeout
int
请求的超时时长,单位:秒。
返回值:Future<TUIValueCallBack<TUIConnectionCode?>>

cancelCrossRoomConnection

主播取消和另外一个直播间的主播连线的请求。
Future<TUIActionCallback> cancelCrossRoomConnection(String roomId)
参数:
参数
类型
含义
roomId
String
取消连线的房间 ID
返回值:Future<TUIActionCallback>

respondToCrossRoomConnection

主播响应连线请求。
Future<TUIActionCallback> respondToCrossRoomConnection(String roomId, bool isAccepted)
参数:
参数
类型
含义
roomId
String
响应连线的房间 ID
isAccepted
bool
是否同意连线,true:同意连线,false:拒绝连线
返回值:Future<TUIActionCallback>

terminateCrossRoomConnection

主播断开连线。
Future<TUIActionCallback> terminateCrossRoomConnection()
返回值:Future<TUIActionCallback>

registerConnectionObserver

注册一个连线事件回调。
void registerConnectionObserver(ConnectionObserver observer)
参数:
参数
类型
含义
observer
连线事件的回调对象
返回值:void

unregisterConnectionObserver

反注册一个连线事件回调。
void unregisterConnectionObserver(ConnectionObserver observer)
参数:
参数
类型
含义
observer
连线事件的回调对象
返回值:void

requestBattle

发起 PK 请求。
Future<TUIValueCallBack<BattleRequestCallback>> requestBattle(
TUIBattleConfig config,
List<String> userIdList,
int timeout)
参数:
参数
类型
含义
config
PK 参数配置,含PK持续时长和扩展信息等。PK目前支持最大时长为300秒
userIdList
List<String>
邀请 PK 的房主userId
timeout
int
PK 请求超时时长,单位为秒

cancelBattle

取消发起 PK 请求。
Future<TUIActionCallback> cancelBattle(String battleId, List<String> userIdList)
参数:
参数
类型
含义
battleId
String
PK 唯一表示符
userIdList
List<String>
取消邀请 PK 的房主userId
返回值:Future<TUIActionCallback>

respondToBattle

响应 PK 请求。
Future<TUIActionCallback> respondToBattle(String battleId, bool isAccepted)
参数:
参数
类型
含义
battleId
String
PK 唯一表示符
isAccepted
bool
是否同意 PK 邀请
返回值:Future<TUIActionCallback>

terminateBattle

退出 PK。
Future<TUIActionCallback> terminateBattle(String battleId)
参数:
参数
类型
含义
battleId
String
PK 唯一表示符
返回值:Future<TUIActionCallback>

registerBattleObserver

注册一个 PK 事件回调。
void registerBattleObserver(BattleObserver observer)
参数:
参数
类型
含义
observer
PK 事件的回调对象
返回值:void

unregisterBattleObserver

反注册一个连线事件回调。
void unregisterBattleObserver(BattleObserver observer)
参数:
参数
类型
含义
observer
PK 事件的回调对象
返回值:void

setLayoutMode

设置连线主播视频画面的布局模式。
void setLayoutMode(
LayoutMode layoutMode,
bool showEmptySeat,
String? layoutJson)
参数:
参数
类型
含义
layoutModel
LayoutMode
连线时的布局模式,支持宫格布局、浮窗布局、自定义布局。
showEmptySeat
bool
是否展示空麦位(暂不可用)
layoutJson
String?
布局的 json 字符串。具体设置用法可参考 设置自定义布局
返回值:void

startPreloadVideoStream

预览房间视频流。
void startPreloadVideoStream(
String roomId,
bool isMuteAudio,
int viewId,
TUIPlayCallback? playCallback)
参数:
参数
类型
含义
roomId
String
要预览视频流的房间号
isMuteAudio
bool
是否静音预览视频流
viewId
int
创建VideoView时返回的的viewId
playCallback
TUIPlayCallback?
预览视频流的回调函数
返回值:void

stopPreloadVideoStream

停止预览房间视频流。
void stopPreloadVideoStream(String roomId)
参数:
参数
类型
含义
roomId
String
要停止预览视频流的房间号
返回值:void


类型定义

类型
含义
连线时的布局模式
连线用户数据
PK 用户视图位置数据
PK 请求结果回调
连麦时的视图挂件 widget 构造器
连线时的视图挂件 widget 构造器
PK时对应主播视频上面的视图挂件 widget 构造器
PK时全屏的的视图挂件 widget 构造器
自定义视图挂件 widget 构造器
连麦的用户列表发生改变的回调
收到连麦请求的回调
收到取消连麦请求的回调
连麦请求被同意的回调
连麦请求被拒绝的回调
连麦请求超时的回调
主播断开和此观众连麦的回调
观众主动断开连线的回调
跨房连线的房间列表发生改变回调
收到跨房连线请求的回调
收到取消跨房连线请求的回调
收到同意跨房连线的回调
收到拒绝跨房连线的回调
收到跨房连线超时的回调
收到断开跨房连线的回调
收到 PK 开始的回调
收到 PK 结束的回调
收到有人加入 PK 结束的回调
收到有人离开 PK 结束的回调
收到 PK 比分发生变化的回调
收到 PK 请求的回调
收到取消 PK 请求的回调
收到 PK 请求超时的回调
收到同意 PK 请求的回调
收到拒绝 PK 请求的回调
收到房间销毁的回调

LayoutMode

麦位列表的布局模式
枚举值
含义
focus
聚焦布局
grid
宫格布局
vertical
纵向布局
free
自定义布局

CoHostUser

连线用户数据
属性
类型
描述
connectionUser
连线用户个人信息
hasAudioStream
bool
连线用户音频流信息
hasVideoStream
bool
连线用户视频流信息

BattleUserWidgetModel

属性
类型
描述
battleUser
PK 用户个人信息
rect
Rect
PK 用户视图位置信息

BattleRequestCallback

PK 请求结果回调
属性
类型
描述
battleId
String
PK 唯一标识符
requestedUserList
PK 邀请用户列表
onError
void Function(TUIError error, String message)
PK 邀请错误结果

CoGuestWidgetBuilder

连麦时的视图挂件 widget 构造器
typedef CoGuestWidgetBuilder = Widget Function(
BuildContext context,
TUIUserInfo userInfo);
参数:
参数
类型
含义
context
BuildContext
上下文
userInfo
连麦者用户信息

CoHostWidgetBuilder

连麦时的视图挂件 widget 构造器
typedef CoHostWidgetBuilder = Widget Function(
BuildContext context,
CoHostUser userInfo);
参数:
参数
类型
含义
context
BuildContext
上下文
userInfo
连线用户数据

BattleWidgetBuilder

PK时对应主播视频上面的视图挂件 widget 构造器
typedef BattleWidgetBuilder = Widget Function(
BuildContext context,
TUIBattleUser userInfo);
参数:
参数
类型
含义
context
BuildContext
上下文
userInfo
参与 PK 的用户信息

BattleContainerWidgetBuilder

PK时全屏的的视图挂件 widget 构造器
typedef BattleContainerWidgetBuilder = Widget Function(
BuildContext context,
List<BattleUserWidgetModel> battleModels);
参数:
参数
类型
含义
context
BuildContext
上下文
battleModels
PK 中用户的视图位置布局信息

VideoWidgetBuilder

自定义视图挂件 widget 构造器
typedef OnSeatWidgetTap = void Function(TUISeatInfo seatInfo);
参数:
参数
类型
含义
seatInfo
麦位信息

OnConnectedUsersUpdated

连麦的用户列表发生改变的回调
typedef OnConnectedUsersUpdated = void Function(
List<TUIUserInfo> userList,
List<TUIUserInfo> joinList,
List<TUIUserInfo> leaveList);
参数:
参数
类型
含义
userList
连麦用户列表
joinList
加入连麦的用户列表
leaveList
离开连麦的用户列表

OnUserConnectionRequest

收到连麦请求的回调
typedef OnUserConnectionRequest = void Function(TUIUserInfo inviterUser);
参数:
参数
类型
含义
inviterUser
连麦用户信息

OnUserConnectionCancelled

收到取消连麦请求的回调
typedef OnUserConnectionCancelled = void Function(TUIUserInfo inviterUser);
参数:
参数
类型
含义
inviterUser
连麦用户信息

OnUserConnectionAccepted

连麦请求被同意的回调
typedef OnUserConnectionAccepted = void Function(TUIUserInfo userInfo);
参数:
参数
类型
含义
userInfo
连麦用户信息

OnUserConnectionRejected

连麦请求被拒绝的回调
typedef OnUserConnectionRejected = void Function(TUIUserInfo userInfo);
参数:
参数
类型
含义
userInfo
连麦用户信息

OnUserConnectionTimeout

连麦请求超时的回调
typedef OnUserConnectionTimeout = void Function(TUIUserInfo userInfo);
参数:
参数
类型
含义
userInfo
连麦用户信息

OnUserConnectionTerminated

主播断开和此观众连麦的回调
typedef OnUserConnectionRejected = void Function();

OnUserConnectionExited

观众主动断开连线的回调
typedef OnUserConnectionExited = void Function(TUIUserInfo userInfo);
参数:
参数
类型
含义
userInfo
连麦用户信息

OnConnectedRoomsUpdated

跨房连线的房间列表发生改变回调
typedef OnConnectedRoomsUpdated = void Function(List<TUIConnectionUser> hostUserList);
参数:
参数
类型
含义
hostUserList
连线用户列表

OnCrossRoomConnectionRequest

收到跨房连线请求的回调
typedef OnCrossRoomConnectionRequest = void Function(TUIConnectionUser hostUser);
参数:
参数
类型
含义
hostUser
连线用户

OnCrossRoomConnectionCancelled

收到取消跨房连线请求的回调
typedef OnCrossRoomConnectionCancelled = void Function(TUIConnectionUser hostUser);
参数:
参数
类型
含义
hostUser
连线用户

OnCrossRoomConnectionAccepted

收到同意跨房连线的回调
typedef OnCrossRoomConnectionAccepted = void Function(TUIConnectionUser hostUser);
参数:
参数
类型
含义
hostUser
连线用户

OnCrossRoomConnectionRejected

收到拒绝跨房连线的回调
typedef OnCrossRoomConnectionRejected = void Function(TUIConnectionUser hostUser);
参数:
参数
类型
含义
hostUser
连线用户

OnCrossRoomConnectionTimeout

收到跨房连线超时的回调
typedef OnCrossRoomConnectionTimeout = void Function(
TUIConnectionUser inviter,
TUIConnectionUser invitee);
参数:
参数
类型
含义
inviter
连线请求发起方
invitee
连线请求受邀方

OnCrossRoomConnectionExited

收到断开跨房连线的回调
typedef OnCrossRoomConnectionExited = void Function(TUIConnectionUser hostUser);
参数:
参数
类型
含义
hostUser
连线用户

OnBattleStarted

收到 PK 开始的回调
typedef OnBattleStarted = void Function(TUIBattleInfo battleInfo);
参数:
参数
类型
含义
battleInfo
PK 信息

OnBattleEnded

收到 PK 结束的回调
typedef OnBattleEnded = void Function(TUIBattleInfo battleInfo);
参数:
参数
类型
含义
battleInfo
PK 信息

OnUserJoinBattle

收到有人加入 PK 结束的回调
typedef OnUserJoinBattle = void Function(
String battleId,
TUIBattleUser battleUser);
参数:
参数
类型
含义
battleId
String
PK 唯一标识符
battleUser
PK 用户

OnUserExitBattle

收到有人离开 PK 结束的回调
typedef OnUserExitBattle = void Function(
String battleId,
TUIBattleUser battleUser);
参数:
参数
类型
含义
battleId
String
PK 唯一标识符
battleUser
PK 用户

OnBattleScoreChanged

收到 PK 比分发生变化的回调
typedef OnBattleScoreChanged = void Function(
String battleId,
List<TUIBattleUser> battleUserList);
参数:
参数
类型
含义
battleId
String
PK 唯一标识符
battleUserList
PK 用户列表

OnBattleRequestReceived

收到 PK 请求的回调
typedef OnBattleRequestReceived = void Function(
String battleId,
TUIBattleUser inviter,
TUIBattleUser invitee);
参数:
参数
类型
含义
battleId
String
PK 唯一标识符
inviter
PK 邀请发起方
invitee
PK 邀请受邀方

OnBattleRequestCancelled

收到取消 PK 请求的回调
typedef OnBattleRequestCancelled = void Function(
String battleId,
TUIBattleUser inviter,
TUIBattleUser invitee);
参数:
参数
类型
含义
battleId
String
PK 唯一标识符
inviter
PK 邀请发起方
invitee
PK 邀请受邀方

OnBattleRequestTimeout

收到 PK 请求超时的回调
typedef OnBattleRequestTimeout = void Function(
String battleId,
TUIBattleUser inviter,
TUIBattleUser invitee);
参数:
参数
类型
含义
battleId
String
PK 唯一标识符
inviter
PK 邀请发起方
invitee
PK 邀请受邀方

OnBattleRequestAccept

收到同意 PK 请求的回调
typedef OnBattleRequestAccept = void Function(
String battleId,
TUIBattleUser inviter,
TUIBattleUser invitee);
参数:
参数
类型
含义
battleId
String
PK 唯一标识符
inviter
PK 邀请发起方
invitee
PK 邀请受邀方

OnBattleRequestReject

收到拒绝 PK 请求的回调
typedef OnBattleRequestReject = void Function(
String battleId,
TUIBattleUser inviter,
TUIBattleUser invitee);
参数:
参数
类型
含义
battleId
String
PK 唯一标识符
inviter
PK 邀请发起方
invitee
PK 邀请受邀方

OnRoomDismissed

收到房间销毁的回调
typedef OnRoomDismissed = void Function(String roomId);
参数:
参数
类型
含义
roomId
String
房间 Id

ConnectionObserver 事件定义

事件列表
类型
含义
onConnectedUsersUpdated
连麦的用户列表发生改变的回调
onUserConnectionRequest
收到连麦请求的回调
onUserConnectionCancelled
收到取消连麦请求的回调
onUserConnectionAccepted
连麦请求被同意的回调
onUserConnectionRejected
连麦请求被拒绝的回调
onUserConnectionTimeout
连麦请求超时的回调
onUserConnectionTerminated
主播断开和此观众连麦的回调
onUserConnectionExited
观众主动断开连线的回调
onConnectedRoomsUpdated
跨房连线的房间列表发生改变回调
onCrossRoomConnectionRequest
收到跨房连线请求的回调
onCrossRoomConnectionCancelled
收到取消跨房连线请求的回调
onCrossRoomConnectionAccepted
收到同意跨房连线的回调
onCrossRoomConnectionRejected
收到拒绝跨房连线的回调
onCrossRoomConnectionTimeout
收到跨房连线超时的回调
onCrossRoomConnectionExited
收到断开跨房连线的回调
onRoomDismissed
收到房间销毁的回调

BattleObser 事件定义

事件列表
类型
含义
onBattleStarted
收到 PK 开始的回调
onBattleEnded
收到 PK 结束的回调
onUserJoinBattle
收到有人加入 PK 结束的回调
onUserExitBattle
收到有人离开 PK 结束的回调
onBattleScoreChanged
收到 PK 比分发生变化的回调
onBattleRequestReceived
收到 PK 请求的回调
onBattleRequestCancelled
收到取消 PK 请求的回调
onBattleRequestTimeout
收到 PK 请求超时的回调
onBattleRequestAccept
收到同意 PK 请求的回调
onBattleRequestReject
收到拒绝 PK 请求的回调