本文为您提供音视频通话场景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() -> BoolsetCameraType:切换摄像头类型(前置/后置)
public func setCameraType(type: AUIRoomEngine.AUIRoomEngineCameraType)| 参数 | 类型 | 含义 | 
| type | AUIRoomEngineCameraType | 摄像头类型(前置/后置) | 
getCameraType:获取当前摄像头类型(前置/后置)
public func getCameraType() -> AUIRoomEngine.AUIRoomEngineCameraTypeswitchAudioOutput:切换音频输出类型(扬声器/听筒)
public func switchAudioOutput(type: AUIRoomEngine.AUIRoomEngineAudioOutputType)| 参数 | 类型 | 含义 | 
| type | AUIRoomEngineAudioOutputType | 音频输出类型(扬声器/听筒) | 
getAudioOutputType:获取当前音频输出类型(扬声器/听筒)
public func getAudioOutputType() -> AUIRoomEngine.AUIRoomEngineAudioOutputTypesendCustomMessage:给用户发送自定义消息
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() -> AUIMessageServiceProtocolAUIRoomEngineDelegate
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.Styleuser:获取当前推拉流用户
public let user: AUIRoomEngine.AUIRoomUserdisplayView:获取当前渲染View
public let displayView: UIViewrenderMode:当前渲染View的渲染模式(自动/拉伸/填充/裁剪)
public var renderMode: AUIRoomEngine.AUIRoomRenderView.RenderModeAUIRoomRenderViewDefaultLayout
视频渲染窗口布局容器。
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 }