本文为您提供音视频通话场景iOS端相关API的详细说明。
API概览
AUIRoomEngine
AUIRoomEngine API是音视频通话组件的无UI接口,如果现有的交互并不满足您的需求,您可以使用这套API根据您的业务需求自定义封装。
API | 描述 |
init | 构造函数,创建RoomEngine实例与初始化 |
destroy | 释放RoomEngine内部相关对象 |
addObserver | 添加房间事件回调 |
removeObserver | 移除房间事件回调 |
roomUser | 获取当前房间用户 |
roomConfig | 获取房间配置 |
renderViewLayout | 设置或获取视频渲染窗口布局容器 |
startPreview | 开始预览 |
stopPreview | 停止预览 |
create | 创建房间 |
join | 进入房间 |
leave | 离开房间 |
isJoin | 获取是否进入房间 |
requestJoin | 邀请其他用户进入房间 |
cancelRequestJoin | 取消邀请其他用户进入房间 |
responseJoin | 响应邀请进入房间 |
startPublish | 开始推流 |
stopPublish | 停止推流 |
isPublishing | 获取是否在推流中 |
requestPublish | 邀请其他用户推流 |
cancelRequestPublish | 取消邀请其他用户推流 |
responsePublish | 响应邀请推流 |
switchCamera | 开启/关闭摄像头 |
switchMicrophone | 开启/关闭麦克风 |
switchPreviewMirror | 开启/关闭预览镜像模式 |
getIsPreviewMirror | 获取当前预览是否镜像模式 |
setCameraType | 切换摄像头类型(前置/后置) |
getCameraType | 获取当前摄像头类型(前置/后置) |
switchAudioOutput | 切换音频输出类型(扬声器/听筒) |
getAudioOutputType | 获取当前音频输出类型(扬声器/听筒) |
sendCustomMessage | 给用户发送自定义消息 |
getRTCEngine | 获取底层RTC引擎实例 |
静态成员或方法
静态成员或方法是指AUIRoomEngine下的静态成员或方法。
API | 描述 |
registerSDK | 注册SDK |
currrentUser | 获取或设置当前要登录的用户 |
login | 登录 |
logout | 登出 |
isLogin | 是否登录 |
getMessageService | 获取互动消息服务实例 |
AUIRoomEngineDelegate
AUIRoomEngineDelegate对应的是回调事件类房间引擎回调,您可以通过此回调,来监听自己感兴趣的回调事件。
API | 描述 |
onJoined | 加入房间的回调 |
onLeaved | 离开房间的回调 |
onReceivedRequestJoin | 收到邀请加入房间的回调 |
onReceivedCancelRequestJoin | 被取消加入房间的邀请的回调 |
onReceivedResponseJoin | 收到被邀请者加入房间的响应回调 |
onStartedPublish | 收到用户开始推流的回调 |
onStopedPublish | 收到用户停止推流的回调 |
onReceivedRequestPublish | 收到邀请推流的回调 |
onReceivedCancelRequestPublish | 被取消推流邀请的回调 |
onReceivedResponsePublish | 收到被邀请者推流的响应回调 |
onReceivedMicrophoneStateChanged | 收到请求切换麦克风状态的回调 |
onReceivedCameraStateChanged | 收到请求切换摄像头状态的回调 |
onMicrophoneStateChanged | 收到用户音频流是否静音的状态回调 |
onCameraStateChanged | 收到用户视频流是否推黑屏帧的回调 |
onReceivedCustomMessage | 收到自定义消息的回调 |
onError | 错误回调 |
AUIRoomRenderView
视频渲染窗口。
API | 描述 |
style | 设置或获取视图样式(正常视图/大视图/小视图) |
user | 获取当前推拉流用户 |
displayView | 获取当前渲染View |
renderMode | 当前渲染View的渲染模式(自动/拉伸/填充/裁剪) |
AUIRoomRenderViewDefaultLayout
视频渲染窗口布局容器。
API | 描述 |
dimensions | 获取渲染窗口的分辨率 |
getRenderViewList | 获取视频渲染窗口列表 |
createRenderView | 创建一个视频渲染窗口 |
createRenderViewCallback | 通过回调方式创建一个视频渲染窗口 |
willInsertRenderView | 即将往布局容器插入一个渲染窗口 |
insertRenderView | 往布局容器插入一个渲染窗口 |
removeRenderView | 从布局容器移除一个渲染窗口 |
willLayoutRenderViewList | 即将布局容器里的视频渲染窗口 |
layoutRenderViewList | 布局容器里的视频渲染窗口 |
smallStyleRenderViewDefaultFrame | 设置为小窗(小视图)时渲染窗口的大小 |
smallStyleRenderViewSafeEdge | 设置为小窗(小视图)时渲染窗口在布局容器中的边距 |
AUIRoomEngine
AUIRoomEngine API是音视频通话组件的无UI接口,如果现有的交互并不满足您的需求,您可以使用这套API根据您的业务需求自定义封装。
init:构造函数,创建RoomEngine实例与初始化
override public init()
destroy:释放RoomEngine内部相关对象
public func destroy()
addObserver:添加房间事件回调
public func addObserver(delegate: AUIRoomEngine.AUIRoomEngineDelegate)
参数 | 类型 | 含义 |
delegate | AUIRoomEngineDelegate | 要添加的监听者 |
removeObserver:移除房间事件回调
public func removeObserver(delegate: AUIRoomEngine.AUIRoomEngineDelegate)
参数 | 类型 | 含义 |
delegate | AUIRoomEngineDelegate | 需要移除的监听者 |
roomUser:获取当前房间用户
lazy public private(set) var roomUser: AUIRoomEngine.AUIRoomUser?
roomConfig:获取房间配置
public private(set) var roomConfig: AUIRoomEngine.AUIRoomEngineConfig? { get }
renderViewLayout:设置或获取视频渲染窗口布局容器
public var renderViewLayout: AUIRoomEngine.AUIRoomRenderViewLayoutProtocol?
startPreview:开始预览
public func startPreview(completed: AUIRoomEngine.AUIRoomEngineCompleted? = nil)
参数 | 类型 | 含义 |
completed | AUIRoomEngineCompleted | 操作完成回调 |
stopPreview:停止预览
public func stopPreview(completed: AUIRoomEngine.AUIRoomEngineCompleted? = nil)
参数 | 类型 | 含义 |
completed | AUIRoomEngineCompleted | 操作完成回调 |
create:创建房间
public func create(completed: @escaping (_ roomId: String?, _ error: NSError?) -> Void)
参数 | 类型 | 含义 |
completed | (_ roomId: String?, _ error: NSError?) -> Void | 操作完成回调,成功则返回roomId,失败则返回error |
join:进入房间
public func join(config: AUIRoomEngine.AUIRoomEngineConfig, completed: AUIRoomEngine.AUIRoomEngineCompleted? = nil)
参数 | 类型 | 含义 |
config | AUIRoomEngineConfig | 房间配置 |
completed | AUIRoomEngineCompleted | 操作完成回调 |
leave:离开房间
public func leave(completed: AUIRoomEngine.AUIRoomEngineCompleted? = nil)
参数 | 类型 | 含义 |
completed | AUIRoomEngineCompleted | 操作完成回调 |
isJoin:获取是否进入房间
public var isJoin: Bool { get }
requestJoin:邀请其他用户进入房间
public func requestJoin(roomId: String, userId: String, extra: [AnyHashable : Any]? = nil, completed: AUIRoomEngine.AUIRoomEngineCompleted? = nil)
参数 | 类型 | 含义 |
roomId | String | 房间ID |
userId | String | 需要邀请的用户ID |
extra | [AnyHashable : Any]? | 扩展数据 |
completed | AUIRoomEngineCompleted | 操作完成回调 |
cancelRequestJoin:取消邀请其他用户进入房间
public func cancelRequestJoin(roomId: String, userId: String, extra: [AnyHashable : Any]? = nil, completed: AUIRoomEngine.AUIRoomEngineCompleted? = nil)
参数 | 类型 | 含义 |
roomId | String | 房间ID |
userId | String | 取消邀请的用户ID |
extra | [AnyHashable : Any]? | 扩展数据 |
completed | AUIRoomEngineCompleted | 操作完成回调 |
responseJoin:响应邀请进入房间
public func responseJoin(roomId: String, userId: String, agree: Bool, extra: [AnyHashable : Any]? = nil, completed: AUIRoomEngine.AUIRoomEngineCompleted? = nil)
参数 | 类型 | 含义 |
roomId | String | 房间ID |
userId | String | 邀请我的用户ID |
agree | Bool | 是否同意 |
extra | [AnyHashable : Any]? | 扩展数据 |
completed | AUIRoomEngineCompleted | 操作完成回调 |
startPublish:开始推流
public func startPublish(completed: AUIRoomEngine.AUIRoomEngineCompleted? = nil)
参数 | 类型 | 含义 |
completed | AUIRoomEngineCompleted | 操作完成回调 |
stopPublish:停止推流
public func stopPublish(completed: AUIRoomEngine.AUIRoomEngineCompleted? = nil)
参数 | 类型 | 含义 |
completed | AUIRoomEngineCompleted | 操作完成回调 |
isPublishing:获取是否在推流中
public private(set) var isPublishing: Bool { get }
requestPublish:邀请其他用户推流
public func requestPublish(userId: String, extra: [AnyHashable : Any]? = nil, completed: AUIRoomEngine.AUIRoomEngineCompleted? = nil)
参数 | 类型 | 含义 |
userId | String | 邀请的用户ID |
extra | [AnyHashable : Any]? | 扩展数据 |
completed | AUIRoomEngineCompleted | 操作完成回调 |
cancelRequestPublish:取消邀请其他用户推流
public func cancelRequestPublish(userId: String, extra: [AnyHashable : Any]? = nil, completed: AUIRoomEngine.AUIRoomEngineCompleted? = nil)
参数 | 类型 | 含义 |
userId | String | 取消邀请的用户ID |
extra | [AnyHashable : Any]? | 扩展数据 |
completed | AUIRoomEngineCompleted | 操作完成回调 |
responsePublish:响应邀请推流
public func responsePublish(userId: String, agree: Bool, extra: [AnyHashable : Any]? = nil, completed: AUIRoomEngine.AUIRoomEngineCompleted? = nil)
参数 | 类型 | 含义 |
userId | String | 邀请我的用户ID |
agree | Bool | 是否同意 |
extra | [AnyHashable : Any]? | 扩展数据 |
completed | AUIRoomEngineCompleted | 操作完成回调 |
switchCamera:开启/关闭摄像头
public func switchCamera(off: Bool, userId: String, completed: AUIRoomEngine.AUIRoomEngineCompleted? = nil)
参数 | 类型 | 含义 |
off | Bool | 开启/关闭 |
userId | String | 被开启/关闭的用户ID |
completed | AUIRoomEngineCompleted | 操作完成回调 |
switchMicrophone:开启/关闭麦克风
public func switchMicrophone(off: Bool, userId: String, completed: AUIRoomEngine.AUIRoomEngineCompleted? = nil)
参数 | 类型 | 含义 |
off | Bool | 开启/关闭 |
userId | String | 被开启/关闭的用户ID |
completed | AUIRoomEngineCompleted | 操作完成回调 |
switchPreviewMirror:开启/关闭预览镜像模式
public func switchPreviewMirror(on: Bool)
参数 | 类型 | 含义 |
on | Bool | 开启/关闭 |
getIsPreviewMirror:获取当前预览是否镜像模式
public func getIsPreviewMirror() -> Bool
setCameraType:切换摄像头类型(前置/后置)
public func setCameraType(type: AUIRoomEngine.AUIRoomEngineCameraType)
参数 | 类型 | 含义 |
type | AUIRoomEngineCameraType | 摄像头类型(前置/后置) |
getCameraType:获取当前摄像头类型(前置/后置)
public func getCameraType() -> AUIRoomEngine.AUIRoomEngineCameraType
switchAudioOutput:切换音频输出类型(扬声器/听筒)
public func switchAudioOutput(type: AUIRoomEngine.AUIRoomEngineAudioOutputType)
参数 | 类型 | 含义 |
type | AUIRoomEngineAudioOutputType | 音频输出类型(扬声器/听筒) |
getAudioOutputType:获取当前音频输出类型(扬声器/听筒)
public func getAudioOutputType() -> AUIRoomEngine.AUIRoomEngineAudioOutputType
sendCustomMessage:给用户发送自定义消息
public func sendCustomMessage(message: [AnyHashable : Any], roomId: String?, userId: String? = nil, skipAudit: Bool = true, completed: AUIRoomEngine.AUIRoomEngineCompleted? = nil)
参数 | 类型 | 含义 |
message | [AnyHashable : Any] | 消息体 |
roomId | String? | 房间ID |
userId | String? | 接收消息的用户ID |
skipAudit | Bool | 是否跳过审核 |
completed | AUIRoomEngineCompleted | 操作完成回调 |
getRTCEngine:获取底层RTC引擎实例
public func getRTCEngine() -> AnyObject?
registerSDK:注册SDK
public static func registerSDK(scene: String)
参数 | 类型 | 含义 |
scene | String | 使用场景标识,用于跟踪 |
currrentUser:获取或设置当前要登录的用户
public static var currrentUser: AUIRoomEngine.AUIRoomUser?
login:登录
public static func login(token: String, completed: AUIRoomEngine.AUIRoomEngineCompleted?)
参数详情:
参数 | 类型 | 含义 |
token | String | 登录鉴权Token |
completed | AUIRoomEngineCompleted | 操作完成回调 |
logout:登出
public static func logout(completed: AUIRoomEngine.AUIRoomEngineCompleted?)
参数 | 类型 | 含义 |
completed | AUIRoomEngineCompleted | 操作完成回调 |
isLogin:是否登录
public static var isLogin: Bool { get }
getMessageService:获取互动消息服务实例
public static func getMessageService() -> AUIMessageServiceProtocol
AUIRoomEngineDelegate
AUIRoomEngineDelegate对应的是回调事件类房间引擎回调,您可以通过此回调,来监听自己感兴趣的回调事件。
onJoined:加入房间的回调
@objc optional func onJoined(user: AUIRoomEngine.AUIRoomUser)
参数 | 类型 | 含义 |
user | AUIRoomUser | 进入房间的用户 |
onLeaved:离开房间的回调
@objc optional func onLeaved(user: AUIRoomEngine.AUIRoomUser)
参数 | 类型 | 含义 |
user | AUIRoomUser | 离开房间的用户 |
onReceivedRequestJoin:收到邀请加入房间的回调
@objc optional func onReceivedRequestJoin(user: AUIRoomEngine.AUIRoomUser, roomId: String, extra: [AnyHashable : Any]?)
参数 | 类型 | 含义 |
user | AUIRoomUser | 邀请的用户 |
roomId | String | 房间ID |
extra | [AnyHashable : Any]? | 扩展数据 |
onReceivedCancelRequestJoin:被取消加入房间的邀请的回调
@objc optional func onReceivedCancelRequestJoin(user: AUIRoomEngine.AUIRoomUser, roomId: String, extra: [AnyHashable : Any]?)
参数 | 类型 | 含义 |
user | AUIRoomUser | 取消邀请的用户 |
roomId | String | 房间ID |
extra | [AnyHashable : Any]? | 扩展数据 |
onReceivedResponseJoin:收到被邀请者加入房间的响应回调
@objc optional func onReceivedResponseJoin(user: AUIRoomEngine.AUIRoomUser, roomId: String, agree: Bool, extra: [AnyHashable : Any]?)
参数 | 类型 | 含义 |
user | AUIRoomUser | 响应邀请的用户 |
roomId | String | 房间ID |
agree | Bool | 是否同意 |
extra | [AnyHashable : Any]? | 扩展数据 |
onStartedPublish:收到用户开始推流的回调
@objc optional func onStartedPublish(user: AUIRoomEngine.AUIRoomUser)
参数 | 类型 | 含义 |
user | AUIRoomUser | 开始推流的用户 |
onStopedPublish:收到用户停止推流的回调
@objc optional func onStopedPublish(user: AUIRoomEngine.AUIRoomUser)
参数 | 类型 | 含义 |
user | AUIRoomUser | 停止推流的用户 |
onReceivedRequestPublish:收到邀请推流的回调
@objc optional func onReceivedRequestPublish(user: AUIRoomEngine.AUIRoomUser, extra: [AnyHashable : Any]?, completed: @escaping (_ agree: Bool, _ extra: [AnyHashable : Any]?) -> Void)
参数 | 类型 | 含义 |
user | AUIRoomUser | 邀请的用户 |
extra | [AnyHashable : Any]? | 扩展数据 |
completed | (_ agree: Bool, _ extra: [AnyHashable : Any]?) -> Void | 响应邀请(是否同意等) |
onReceivedCancelRequestPublish:被取消推流邀请的回调
@objc optional func onReceivedCancelRequestPublish(user: AUIRoomEngine.AUIRoomUser, extra: [AnyHashable : Any]?)
参数 | 类型 | 含义 |
user | AUIRoomUser | 取消邀请的用户 |
extra | [AnyHashable : Any]? | 扩展数据 |
onReceivedResponsePublish:收到被邀请者推流的响应回调
@objc optional func onReceivedResponsePublish(user: AUIRoomEngine.AUIRoomUser, agree: Bool, extra: [AnyHashable : Any]?)
参数 | 类型 | 含义 |
user | AUIRoomUser | 响应的用户 |
agree | Bool | 是否统一 |
extra | [AnyHashable : Any]? | 扩展数据 |
onReceivedMicrophoneStateChanged:收到请求切换麦克风状态的回调
@objc optional func onReceivedMicrophoneStateChanged(user: AUIRoomEngine.AUIRoomUser, off: Bool)
参数 | 类型 | 含义 |
user | AUIRoomUser | 发起邀请的用户 |
off | Bool | 开启/关闭 |
onReceivedCameraStateChanged:收到请求切换摄像头状态的回调
@objc optional func onReceivedCameraStateChanged(user: AUIRoomEngine.AUIRoomUser, off: Bool)
参数 | 类型 | 含义 |
user | AUIRoomUser | 发起邀请的用户 |
off | Bool | 开启/关闭 |
onMicrophoneStateChanged:收到用户音频流是否静音的状态回调
@objc optional func onMicrophoneStateChanged(user: AUIRoomEngine.AUIRoomUser, off: Bool)
参数 | 类型 | 含义 |
user | AUIRoomUser | 发起状态改变的用户 |
off | Bool | 开启/关闭 |
onCameraStateChanged:收到用户视频流是否推黑屏帧的回调
@objc optional func onCameraStateChanged(user: AUIRoomEngine.AUIRoomUser, off: Bool)
参数 | 类型 | 含义 |
user | AUIRoomUser | 发起状态改变的用户 |
off | Bool | 开启/关闭 |
onReceivedCustomMessage:收到自定义消息的回调
@objc optional func onReceivedCustomMessage(user: AUIRoomEngine.AUIRoomUser, message: [AnyHashable : Any])
参数 | 类型 | 含义 |
user | AUIRoomUser | 发送消息的用户 |
message | [AnyHashable : Any] | 消息体 |
onError:错误回调
@objc optional func onError(_ error: Error)
参数 | 类型 | 含义 |
error | Error | 错误信息 |
AUIRoomRenderView
视频渲染窗口。
style:设置或获取视图样式(正常视图/大视图/小视图)
open var style: AUIRoomEngine.AUIRoomRenderView.Style
user:获取当前推拉流用户
public let user: AUIRoomEngine.AUIRoomUser
displayView:获取当前渲染View
public let displayView: UIView
renderMode:当前渲染View的渲染模式(自动/拉伸/填充/裁剪)
public var renderMode: AUIRoomEngine.AUIRoomRenderView.RenderMode
AUIRoomRenderViewDefaultLayout
视频渲染窗口布局容器。
dimensions:获取渲染窗口的分辨率
public private(set) var dimensions: CGSize { get }
getRenderViewList:获取视频渲染窗口列表
public func getRenderViewList() -> [AUIRoomEngine.AUIRoomRenderView]
createRenderView:创建一个视频渲染窗口
open func createRenderView(user: AUIRoomEngine.AUIRoomUser) -> AUIRoomEngine.AUIRoomRenderView?
参数 | 类型 | 含义 |
user | AUIRoomUser | 需要创建视频渲染窗口的用户 |
createRenderViewCallback:通过回调方式创建一个视频渲染窗口
public var createRenderViewCallback: ((_ user: AUIRoomEngine.AUIRoomUser, _ dimensions: CGSize?) -> AUIRoomEngine.AUIRoomRenderView?)?
参数 | 类型 | 含义 |
user | AUIRoomUser | 需要创建视频渲染窗口的用户 |
dimensions | CGSize? | 分辨率 |
willInsertRenderView:即将往布局容器插入一个渲染窗口
open func willInsertRenderView(renderView: AUIRoomEngine.AUIRoomRenderView) -> Int
参数 | 类型 | 含义 |
renderView | AUIRoomRenderView | 视频渲染窗口 |
insertRenderView:往布局容器插入一个渲染窗口
open func insertRenderView(renderView: AUIRoomEngine.AUIRoomRenderView)
参数 | 类型 | 含义 |
renderView | AUIRoomRenderView | 视频渲染窗口 |
removeRenderView:从布局容器移除一个渲染窗口
open func removeRenderView(renderView: AUIRoomEngine.AUIRoomRenderView)
参数 | 类型 | 含义 |
renderView | AUIRoomRenderView | 需要移除的视频渲染窗口 |
willLayoutRenderViewList:即将布局容器里的视频渲染窗口
open func willLayoutRenderViewList()
layoutRenderViewList:布局容器里的视频渲染窗
open func layoutRenderViewList()
smallStyleRenderViewDefaultFrame:设置为小窗(小视图)时渲染窗口的大小
open var smallStyleRenderViewDefaultFrame: CGRect { get }
smallStyleRenderViewSafeEdge:设置为小窗(小视图)时渲染窗口在布局容器中的边距
open var smallStyleRenderViewSafeEdge: UIEdgeInsets { get }