LiveCoreWidget

最近更新时间:2025-07-09 17:58:52

我的收藏

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