LiveCoreView

API 简介

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

API 概览

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

API 详情

LiveCoreView

创建一个 LiveCoreView 对象实例。
LiveCoreView()

startCamera

开始摄像头采集并将采集到的画面显示到 LiveCoreView 视图上。
func startCamera(useFrontCamera: Bool, onSuccess: @escaping TUISuccessBlock, onError: @escaping TUIErrorBlock)
参数:
参数
类型
含义
useFrontCamera
Bool
true:使用前置摄像头;false:使用后置摄像头
onSuccess
TUISuccessBlock
操作成功的回调
onError
TUIErrorBlock
操作失败的回调

startMicrophone

打开本地麦克风。
func startMicrophone(onSuccess: @escaping TUISuccessBlock, onError: @escaping TUIErrorBlock)
参数:
参数
类型
含义
onSuccess
TUISuccessBlock
操作成功的回调
onError
TUIErrorBlock
操作失败的回调

muteMicrophone

是否暂停发布本地的音频流。
func muteMicrophone(mute: Bool)
参数:
参数
类型
含义
mute
Bool
true:暂停发布视频流,false:正常发布视频流

stopCamera

关闭本地摄像头。
func stopCamera()

stopMicrophone

关闭本地麦克风。
func stopMicrophone()

startLiveStream

主播创建直播间并开始推流。
func startLiveStream(roomInfo: TUIRoomInfo,
onSuccess: @escaping TUIRoomInfoBlock,
onError: @escaping TUIErrorBlock)
参数:
参数
类型
含义
roomInfo
TUIRoomInfo
创建直播间的信息
onSuccess
TUIRoomInfoBlock
操作成功的回调
onError
TUIErrorBlock
操作失败的回调

stopLiveStream

主播停止推流并销毁直播间。
func stopLiveStream(onSuccess: @escaping TUISuccessBlock, onError: @escaping TUIErrorBlock)
参数:
参数
类型
含义
onSuccess
TUISuccessBlock
操作成功的回调
onError
TUIErrorBlock
操作失败的回调

joinLiveStream

观众加入某个主播的直播间。
func joinLiveStream(roomId: String,
onSuccess: @escaping TUIRoomInfoBlock,
onError: @escaping TUIErrorBlock)
参数:
参数
类型
含义
roomId
String
直播间 ID
onSuccess
TUIRoomInfoBlock
操作成功的回调
onError
TUIErrorBlock
操作失败的回调

leaveLiveStream

观众离开某个主播的直播间。
func leaveLiveStream(onSuccess: @escaping TUISuccessBlock, onError: @escaping TUIErrorBlock)
参数:
参数
类型
含义
onSuccess
TUISuccessBlock
操作成功的回调
onError
TUIErrorBlock
操作失败的回调

requestIntraRoomConnection

观众请求和主播连线。
func requestIntraRoomConnection(userId: String, timeOut: Int, openCamera: Bool,
onSuccess: @escaping TUISuccessBlock, onError: @escaping TUIErrorBlock)
参数:
参数
类型
含义
userId
String
用户 ID,如果传空字符串,则代表观众请求和主播连线。不为空时,则代表主播邀请对应userId的用户连线。
timeout
int
请求超时时长,单位: 秒。
openCamera
Bool
连麦成功后是否打开摄像头。true:视频连麦, false:语音连麦。
onSuccess
TUISuccessBlock
操作成功的回调
onError
TUIErrorBlock
操作失败的回调

cancelIntraRoomConnection

观众取消和主播连线的请求。
func cancelIntraRoomConnection(userId: String,
onSuccess: @escaping TUISuccessBlock,
onError: @escaping TUIErrorBlock)
参数:
参数
类型
含义
userId
String
取消连麦的用户 ID,如果传空字符串,则代表观众取消和主播连线的请求。不为空时,则代表主播取消邀请对应 userId 的用户连线。
onSuccess
TUISuccessBlock
操作成功的回调
onError
TUIErrorBlock
操作失败的回调

respondIntraRoomConnection

主播响应观众连线的请求。
func respondIntraRoomConnection(userId: String, isAccepted: Bool,
onSuccess: @escaping TUISuccessBlock, onError: @escaping TUIErrorBlock)
参数:
参数
类型
含义
userId
String
主播响应观众连线的观众 user ID。若传入空字符串,则代表观众响应主播的邀请连线。
isAccepted
isAccepted
是否接受连麦请求,true:同意连麦请求,false:拒绝连麦请求
onSuccess
TUISuccessBlock
操作成功的回调
onError
TUIErrorBlock
操作失败的回调

disconnectUser

主播断开连线的观众。
func disconnectUser(userId: String, onSuccess: @escaping TUISuccessBlock, onError: @escaping TUIErrorBlock)
参数:
参数
类型
含义
userId
String
主播需要断开连麦的用户 ID
onSuccess
TUISuccessBlock
操作成功的回调
onError
TUIErrorBlock
操作失败的回调

terminateIntraRoomConnection

观众自己停止和主播的连线。
func terminateIntraRoomConnection()

requestCrossRoomConnection

主播请求和另外一个直播间的主播连线。
func requestCrossRoomConnection(roomId: String, timeOut: Int,
onSuccess: @escaping TUISuccessBlock, onError: @escaping TUIErrorBlock)
参数:
参数
类型
含义
roomId
String
请求跨房连线的房间 ID。
timeout
int
请求的超时时长,单位:秒。
onSuccess
TUISuccessBlock
操作成功的回调
onError
TUIErrorBlock
操作失败的回调

cancelCrossRoomConnection

主播取消和另外一个直播间的主播连线的请求。
func cancelCrossRoomConnection(roomId: String, onSuccess: @escaping TUISuccessBlock, onError: @escaping TUIErrorBlock)
参数:
参数
类型
含义
roomId
String
取消连线的房间 ID
onSuccess
TUISuccessBlock
操作成功的回调
onError
TUIErrorBlock
操作失败的回调

respondToCrossRoomConnection

主播响应连线请求。
func respondToCrossRoomConnection(roomId: String, isAccepted: Bool,
onSuccess: @escaping TUISuccessBlock, onError: @escaping TUIErrorBlock)
参数:
参数
类型
含义
roomId
String
响应连线的房间 ID
isAccepted
boolean
是否同意连线,true:同意连线,false:拒绝连线
onSuccess
TUISuccessBlock
操作成功的回调
onError
TUIErrorBlock
操作失败的回调

terminateCrossRoomConnection

主播断开连线。
func terminateCrossRoomConnection()

registerConnectionObserver

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

unregisterConnectionObserver

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

setLayoutMode

设置连线主播视频画面的布局模式。
func setLayoutMode(layoutMode: LayoutMode, layoutJson: String? = nil)
参数:
参数
类型
含义
layoutModel
连线时的布局模式,支持宫格布局、浮窗布局、自定义布局。
layoutJson
String
布局的 json 字符串。具体设置用法可参见 设置自定义布局

delegate

设置为连线主播视频画面上添加挂件的视图适配器。
public weak var videoViewDelegate: VideoViewDelegate?
参数:
参数
类型
含义
viewAdapter
连线主播视频画面上添加挂件的视图适配器


类型定义

类型
描述
为核心控件设置连线的回调事件。
连线时的布局模式,支持宫格布局、浮窗布局、自定义布局。
连线视图适配器接口,您可以通过实现该接口来向您的每个音视频流视图上添加挂件。

ConnectionObserver

类型
说明
连麦的用户列表发生改变的回调。
收到连麦请求的回调。
收到取消连麦请求的回调。
连麦请求被同意的回调。
连麦请求被拒绝的回调。
连麦请求超时的回调。
主播断开和此观众连麦的回调。
观众主动断开连线的回调。
跨房连线的房间列表发生改变回调。
收到跨房连线请求的回调。
收到取消跨房连线请求的回调。
收到同意跨房连线的回调
收到拒绝跨房连线的回调
收到跨房连线超时的回调。
收到断开跨房连线的回调。
收到房间销毁的回调。

LayoutMode

连线时的布局模式
类型
描述
gridLayout
宫格布局。
floatLayout
浮窗布局。
freeLayout
自定义布局。

VideoViewDelegate

连线视图适配器接口,您可以通过实现该接口来向您的每个音视频流视图上添加挂件。
API
说明
创建连麦观众视图时回调,您通过该 API 创建的 View 会被显示到连麦观众的视图上。
更新连麦观众视图时回调。
创建连线主播视图时回调,您通过该 API 创建的 View 会被显示到连线主播的视图上。
更新连线主播视图时回调。

回调事件详情

onConnectedUsersUpdated

连麦的用户列表发生改变的回调。
func onConnectedUsersUpdated(userList: [TUIUserInfo], joinList: [TUIUserInfo], leaveList: [TUIUserInfo])
参数:
参数
类型
描述
userList
连麦的用户列表
joinList
新加入的连麦用户
leaveList
离开的连麦用户

onUserConnectionRequest

收到连麦请求的回调。
func onUserConnectionRequest(inviterUser: TUIUserInfo)
参数:
参数
类型
描述
inviterUser
申请连麦的用户信息

onUserConnectionCancelled

收到取消连麦请求的回调。
func onUserConnectionCancelled(inviterUser: TUIUserInfo)
参数:
参数
类型
描述
inviterUser
取消连麦的用户信息

onUserConnectionAccepted

连麦请求被同意的回调。
func onUserConnectionAccepted(userInfo: TUIUserInfo)
参数:
参数
类型
描述
userInfo
同意连麦的用户信息

onUserConnectionRejected

连麦请求被拒绝的回调。
func onUserConnectionRejected(userInfo: TUIUserInfo)
参数:
参数
类型
描述
userInfo
拒绝连麦的用户信息

onUserConnectionTimeout

连麦请超时的回调。
func onUserConnectionTimeout(userInfo: TUIUserInfo)
参数:
参数
类型
描述
userInfo
连麦请求超时的用户信息

onUserConnectionTerminated

主播断开和此观众连麦的回调。
func onUserConnectionTerminated()

onUserConnectionExited

连麦的用户断开连麦的回调。
func onUserConnectionExited(userInfo: TUIUserInfo)
参数:
参数
类型
描述
userInfo
断开连麦的用户信息

onConnectedRoomsUpdated

连线的房间列表发生改变的回调。
func onConnectedRoomsUpdated(hostUserList: [TUIConnectionUser])
参数:
参数
类型
描述
hostUserList
连线房间的房主列表

onCrossRoomConnectionRequest

收到跨房连线的请求的回调。
func onCrossRoomConnectionRequest(hostUser: TUIConnectionUser)
参数:
参数
类型
描述
hostUser
申请连线的直播间房主信息

onCrossRoomConnectionCancelled

收到取消跨房连线请求的回调。
func onCrossRoomConnectionCancelled(hostUser: TUIConnectionUser)
参数:
参数
类型
描述
hostUser
取消申请连线的直播间房主信息

onCrossRoomConnectionAccepted

收到同意跨房连线请求的回调。
func onCrossRoomConnectionAccepted(hostUser: TUIConnectionUser)
参数:
参数
类型
描述
hostUser
同意连线的直播间房主信息

onCrossRoomConnectionRejected

收到拒绝跨房连线请求的回调。
func onCrossRoomConnectionRejected(hostUser: TUIConnectionUser)
参数:
参数
类型
描述
hostUser
拒绝连线的直播间房主信息

onCrossRoomConnectionTimeout

收到房连线请求超时的回调。
func onCrossRoomConnectionTimeout(inviter: TUIConnectionUser, invitee: TUIConnectionUser)
参数:
参数
类型
描述
inviter
申请连线的直播间房主信息
invitee
被邀请连线的直播间房主信息

onCrossRoomConnectionExited

连麦的用户列表发生改变的回调。
func onCrossRoomConnectionExited(hostUser: TUIConnectionUser)
参数:
参数
类型
描述
hostUser
退出连线的直播间信息

onRoomDismissed

直播间被销毁的回调。
func onRoomDismissed(roomId: String)
参数:
参数
类型
描述
roomId
String
房间 ID

createCoGuestView

创建观众连麦的挂件视图,该视图会被添加到 该用户的视频流画面上面。
func createCoGuestView(userInfo: TUIUserInfo) -> UIView?
参数:
参数
类型
描述
userInfo
连麦用户的用户信息
返回值:UIView?

updateCoGuestView

更新挂件视图的回调,一般情况下,您不需要关系此回调,您可以根据您自己的挂件数据状态来更新您设置的挂件视图,除非您的挂件依赖于userInfo的改变。
func updateCoGuestView(userInfo: TUIUserInfo, coGuestView: UIView)
参数:
参数
类型
描述
userInfo
连麦用户的用户信息
coGuestView
UIView
您通过 createCoGuestView api 创建的挂件视图

createCoHostView

创建主播连线的挂件视图,该视图会被添加到 该连线主播的视频流画面上面。
func createCoHostView(connectionUser: TUIConnectionUser) -> UIView?
参数:
参数
类型
描述
connectionUser
连线主播的用户信息
返回值:UIView?

updateCoHostView

更新挂件视图的回调,一般情况下,您不需要关系此回调,您可以根据您自己的挂件数据状态来更新您设置的挂件视图,除非您的挂件依赖于connectionUser的改变。
func updateCoHostView(connectionUser: TUIConnectionUser, coHostView: UIView)
参数:
参数
类型
描述
connectionUser
连线主播的信息
coHostView
UIView
您通过 createCoHostView api 创建的挂件视图