LiveCoreView
API 简介
LiveCoreView 是我们开发视频直播 UIKit 的一个基础控件,该核心控件提供了 开播前画面预览、开启视频直播、关闭视频直播,直播间内和观众连线,跨房和其他主播连线等丰富的 API。
API 概览
API | 描述 |
创建 LiveCoreView 对象。 | |
开启摄像头采集,并将采集到的画面显示到 LiveCoreView 上。 | |
打开本地麦克风 | |
是否暂停发布本地的音频流 | |
关闭本地摄像头 | |
关闭本地麦克风 | |
主播创建直播间并开始推流 | |
主播停止推流并销毁直播间 | |
观众加入某个主播的直播间 | |
观众离开某个主播的直播间 | |
观众请求和主播连线 | |
观众取消和主播连线的请求 | |
主播响应观众连线的请求 | |
主播断开连线的观众 | |
观众自己停止和主播的连线 | |
主播请求和另外一个直播间的主播连线 | |
主播取消和另外一个直播间的主播连线的请求 | |
主播响应连线请求 | |
主播断开连线 | |
注册一个连线事件回调 | |
反注册一个连线事件回调 | |
设置连线主播视频画面的布局模式 | |
设置为连线主播视频画面上添加挂件的视图适配器 |
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 |
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 |
createCoHostView
创建主播连线的挂件视图,该视图会被添加到 该连线主播的视频流画面上面。
func createCoHostView(connectionUser: TUIConnectionUser) -> UIView?
参数:
参数 | 类型 | 描述 |
connectionUser | 连线主播的用户信息 |
返回值:UIView?
updateCoHostView
更新挂件视图的回调,一般情况下,您不需要关系此回调,您可以根据您自己的挂件数据状态来更新您设置的挂件视图,除非您的挂件依赖于connectionUser的改变。
func updateCoHostView(connectionUser: TUIConnectionUser, coHostView: UIView)
参数:
参数 | 类型 | 描述 |
connectionUser | 连线主播的信息 | |
coHostView | UIView |
- API 简介
- API 概览
- API 详情
- LiveCoreView
- startCamera
- startMicrophone
- muteMicrophone
- stopCamera
- stopMicrophone
- startLiveStream
- stopLiveStream
- joinLiveStream
- leaveLiveStream
- requestIntraRoomConnection
- cancelIntraRoomConnection
- respondIntraRoomConnection
- disconnectUser
- terminateIntraRoomConnection
- requestCrossRoomConnection
- cancelCrossRoomConnection
- respondToCrossRoomConnection
- terminateCrossRoomConnection
- registerConnectionObserver
- unregisterConnectionObserver
- setLayoutMode
- delegate
- 类型定义
- 回调事件详情
- onConnectedUsersUpdated
- onUserConnectionRequest
- onUserConnectionCancelled
- onUserConnectionAccepted
- onUserConnectionRejected
- onUserConnectionTimeout
- onUserConnectionTerminated
- onUserConnectionExited
- onConnectedRoomsUpdated
- onCrossRoomConnectionRequest
- onCrossRoomConnectionCancelled
- onCrossRoomConnectionAccepted
- onCrossRoomConnectionRejected
- onCrossRoomConnectionTimeout
- onCrossRoomConnectionExited
- onRoomDismissed
- createCoGuestView
- updateCoGuestView
- createCoHostView
- updateCoHostView