通过阅读本文,您可以了解到iOS SDK和Mac SDK的DingRtcEngine接口详情。
接口说明
目录
基础接口
API |
描述 |
支持的最低版本 |
创建并获取一个DingRtcEngine实例,多次调用返回同一实例,既单例。 |
3.0 |
|
销毁DingRtcEngine::sharedInstance:extras:创建的DingRtcEngine实例。 |
3.0 |
|
创建并获取一个DingRtcEngine实例,多次调用返回多个实例。 |
3.3.0 |
|
销毁DingRtcEngine::sharedInstance:extras:或者DingRtcEngine::createInstance:extras:创建的DingRtcEngine实例。 |
3.3.0 |
|
查询SDK当前版本号。 |
3.0 |
|
设置SDK日志文件保存路径。 |
3.0 |
|
设置日志等级。 |
3.0 |
|
根据错误码,获取错误码描述。 |
3.0 |
|
是否分发回调到主线程。 |
3.0 |
|
指定回调线程队列。 |
3.0 |
|
加入频道。 |
3.0 |
|
离开频道。 |
3.0 |
|
返回音频分组大厅ID,可以根据此ID判断一个group是不是大厅。 |
3.4 |
|
加入音频分组。如果分组当前不存在,则自动创建一个。 |
3.4 |
|
离开音频分组。 |
3.4 |
|
解散音频分组,所有成员被迫离开该音频分组。 |
3.4 |
|
本地音频合并进分组音频或者大厅音频中。 |
3.4 |
|
切换订阅的音频流到指定的分组或者大厅音频。 |
3.4 |
|
查询当前订阅的音频的类型,可能是大厅音频,也可能是某个分组的音频。 |
3.4 |
频道相关接口
API |
描述 |
支持的最低版本 |
加入频道。 |
3.0 |
|
离开频道。 |
3.0 |
|
获取状态:当前是否在频道中。 |
3.0 |
|
查询远端用户状态。 |
3.0 |
发布相关接口
API |
描述 |
支持的最低版本 |
是否推送本地视频流。 |
3.0 |
|
是否推送音频流。 |
3.0 |
|
查询是否设置推送视频流。 |
3.0 |
|
查询是否设置推送音频流。 |
3.0 |
|
启动屏幕分享(仅适用于iOS系统)。 |
3.0 |
|
停止屏幕分享。 |
3.0 |
|
查询是否设置推送屏幕分享。 |
3.0 |
|
根据桌面ID进行屏幕分享(仅适用于Mac系统)。 |
3.0 |
|
根据窗口ID进行屏幕分享(仅适用于Mac系统)。 |
3.0 |
|
更新当前正在进行中的屏幕分享的配置。 |
3.4.0 |
|
获取屏幕分享源信息(仅适用于Mac系统)。 |
3.0 |
|
设置订阅视频流分辨率规格。 |
3.0 |
|
设置默认订阅的视频流分辨率规格;如果不设置,则默认订阅最大的分辨率规格。 |
3.0 |
|
停止/恢复订阅所有远端音频流,包含后入会成员的订阅。 |
3.0 |
|
停止/恢复订阅所有远端视频流,包含后入会成员的订阅。 |
3.0 |
|
停止/恢复订阅远端用户的视频流。 |
3.0 |
|
获取远端在线用户列表。 |
3.0 |
|
查询用户是否在线。 |
3.0 |
|
获取当前网络链接状态。 |
3.0 |
订阅相关接口
API |
描述 |
支持的最低版本 |
设置订阅视频流分辨率规格。 |
3.0 |
|
设置默认订阅的视频流分辨率规格;如果不设置,则默认订阅最大的分辨率规格。 |
3.0 |
|
停止/恢复订阅所有远端音频流,包含后入会成员的订阅。 |
3.0 |
|
停止/恢复订阅所有远端视频流,包含后入会成员的订阅。 |
3.0 |
|
停止/恢复订阅远端用户的视频流。 |
3.0 |
视频相关接口
API |
描述 |
支持的最低版本 |
设置本地预览显示视图。 |
3.0 |
|
检查camera是否打开。 |
3.0 |
|
禁用或启用本地视频采集。 |
3.0 |
|
暂停/恢复本地视频流的发送。 |
3.0 |
|
设置相机流视频编码属性。 |
3.0 |
|
开启或关闭视频美颜。 |
3.0 |
|
开启或关闭虚拟背景。 |
3.3 |
|
设置视频暗光增强功能。 |
3.0 |
|
设置视频去噪场景功能。 |
3.0 |
|
设置视频帧观察器。 |
3.0 |
|
设置视频帧数据观察开关。 |
3.1 |
|
开启本地视频预览。 |
3.0 |
|
关闭本地视频预览。 |
3.0 |
|
是否推送本地视频流。 |
3.0 |
|
设置屏幕流视频编码属性。 |
3.0 |
|
设置音频去噪功能。 |
3.4 |
|
停止/恢复本地音频数据发送。 |
3.0 |
|
是否推送音频流。 |
3.0 |
|
设置远端视频显示视图。 |
3.0 |
|
更新本地或远端视频视图属性。 |
3.0 |
|
设置camera采集偏好(仅适用于iOS系统)。 |
3.0 |
|
切换前后摄像头(仅适用于iOS系统)。 |
3.0 |
|
设置摄像头缩放。 |
3.0 |
|
设置摄像头闪光灯开关。 |
3.0 |
|
摄像头是否支持手动聚焦。 |
3.0 |
|
设置摄像头手动聚焦点。 |
3.0 |
|
摄像头是否支持设置曝光点。 |
3.0 |
|
设置摄像头曝光点。 |
3.0 |
|
设置设备方向(仅适用于iOS系统)。 |
3.0 |
|
获取摄像头列表(仅适用于Mac系统)。 |
3.0 |
|
获取摄像头列表(仅适用于Mac系统)。 |
3.0 |
|
获取当前使用的摄像头名称(仅适用于Mac系统)。 |
3.0 |
|
获取当前使用的摄像头ID(仅适用于Mac系统)。 |
3.0 |
|
选择摄像头(Name)(仅适用于Mac系统)。 |
3.0 |
|
选择摄像头(ID)(仅适用于Mac系统)。 |
3.0 |
|
开始录制(仅适用于Mac系统) |
3.0 |
|
更新录制内容信息(仅适用于Mac系统)。 |
3.0 |
|
暂停录制(仅适用于Mac系统)。 |
3.0 |
|
重新开启录制(仅适用于Mac系统)。 |
3.0 |
|
停止录制(仅适用于Mac系统) |
3.0 |
|
对指定用户的视频进行截图,生成一张JPG格式的图片,并保存至指定的路径。 |
3.0 |
共享视频相关接口
API |
描述 |
支持的最低版本 |
设置屏幕流视频编码属性。 |
3.0 |
|
启动屏幕分享(仅适用于iOS系统)。 |
3.0 |
|
停止屏幕分享。 |
3.0 |
|
查询是否设置推送屏幕分享。 |
3.0 |
|
根据桌面ID进行屏幕分享(仅适用于Mac系统)。 |
3.0 |
|
根据窗口ID进行屏幕分享(仅适用于Mac系统)。 |
3.0 |
|
更新当前正在进行中的屏幕分享的配置。 |
3.4.0 |
|
获取屏幕分享源信息(仅适用于Mac系统)。 |
3.0 |
音频相关接口
API |
描述 |
支持的最低版本 |
设置音频去噪功能。 |
3.4 |
|
停止/恢复本地音频数据发送。 |
3.0 |
|
设置音频输出为听筒还是扬声器(仅适用于iOS系统)。 |
3.0 |
|
获取当前音频输出为听筒还是扬声器(仅适用于iOS系统)。 |
3.0 |
|
设置SDK对AVAudioSession的控制权限 |
3.4.2 |
|
设置音频profile。 |
3.0 |
|
开始测试音频采集设备 |
3.0 |
|
停止测试音频采集设备 |
3.0 |
|
开始测试音频播放设备 |
3.0 |
|
停止测试音频播放设备 |
3.0 |
|
设置音频播放音量,音量范围[0,100] |
3.5 |
|
获取音频播放音量 |
3.5 |
|
设置音频采集音量,音量范围[0,100] |
3.5 |
|
获取音频采集音量 |
3.5 |
|
获取系统中的录音设备列表(仅适用于Mac系统)。 |
3.0 |
|
选择录音设备(ID)(仅适用于Mac系统)。 |
3.0 |
|
获取系统中的扬声器列表(仅适用于Mac系统)。 |
3.0 |
|
获取当前使用的扬声器ID(仅适用于Mac系统)。 |
3.0 |
|
选择扬声器(ID)(仅适用于Mac系统)。 |
3.0 |
|
设置音频采集设备音量(仅适用于Mac系统)。 |
3.0 |
|
获取音频采集设备音量(仅适用于Mac系统)。 |
3.0 |
|
设置音频播放设备音量(仅适用于Mac系统)。 |
3.0 |
|
获取音频播放设备音量(仅适用于Mac系统)。 |
3.0 |
|
静音音频采集设备(仅适用于Mac系统)。 |
3.0 |
|
获取音频采集设备静音状态(仅适用于Mac系统)。 |
3.0 |
|
静音音频播放设备(仅适用于Mac系统)。 |
3.0 |
|
获取音频播放设备静音状态(仅适用于Mac系统)。 |
3.0 |
|
设置算法或者其他私有参数。 |
3.4.2 |
|
设置camera采集偏好(仅适用于iOS系统)。 |
3.0 |
|
切换前后摄像头(仅适用于iOS系统)。 |
3.0 |
|
设置摄像头缩放。 |
3.0 |
|
设置摄像头闪光灯开关。 |
3.0 |
|
摄像头是否支持手动聚焦。 |
3.0 |
|
设置摄像头手动聚焦点。 |
3.0 |
|
摄像头是否支持设置曝光点。 |
3.0 |
|
设置摄像头曝光点。 |
3.0 |
|
设置设备方向(仅适用于iOS系统)。 |
3.0 |
|
获取使用的录音设备ID(仅适用于Mac系统)。 |
||
获取摄像头列表(仅适用于Mac系统)。 |
3.0 |
|
获取摄像头列表(仅适用于Mac系统)。 |
3.0 |
|
获取当前使用的摄像头名称(仅适用于Mac系统)。 |
3.0 |
|
获取当前使用的摄像头ID(仅适用于Mac系统)。 |
3.0 |
|
选择摄像头(Name)(仅适用于Mac系统)。 |
3.0 |
|
选择摄像头(ID)(仅适用于Mac系统)。 |
3.0 |
|
设置音量回调频率和平滑系数。 |
3.0 |
|
设置是否启用外部音频输入源。 |
3.0 |
|
输入外部音频数据推流到远端。 |
3.0 |
|
注册音频数据回调。 |
3.0 |
|
订阅音频数据。 |
3.0 |
|
订阅音频数据。 |
3.3 |
|
订阅音频数据。 |
3.0 |
|
设置是否启用外部音频渲染源 |
3.0 |
|
输入外部音频数据渲染到本地 |
3.0 |
|
开启自定义音频采集,开始后,SDK内部不在操作音频采集设备 |
3.1 |
|
向SDK投送自己采集的音频数据 |
3.1 |
|
开启自定义音频播放,开始后,SDK内部不在操作音频播放设备 |
3.1 |
|
获取可播放的音频数据 |
3.1 |
|
创建伴奏混音实例。 |
3.4 |
|
销毁伴奏混音实例。 |
3.4 |
|
开始伴奏混音。 |
3.4 |
|
停止伴奏混音。 |
3.4 |
|
暂停伴奏混音。 |
3.4 |
|
暂停后恢复伴奏混音。 |
3.4 |
|
获取伴奏时长。 |
3.4 |
|
获取当前伴奏播放时长。 |
3.4 |
|
设置伴奏播放位置。 |
3.4 |
|
设置伴奏音量。 |
3.4 |
|
获取伴奏音量。 |
3.4 |
|
设置伴奏推流音量。 |
3.4 |
|
获取伴奏推流音量。 |
3.4 |
|
设置伴奏播放音量。 |
3.4 |
|
获取伴奏播放音量。 |
3.4 |
|
设置外部视频源。 |
3.0 |
|
推送外部视频数据。 |
3.0 |
|
加入音频分组。如果分组当前不存在,则自动创建一个。 |
3.4 |
|
离开音频分组。 |
3.4 |
|
解散音频分组,所有成员被迫离开该音频分组。 |
3.4 |
|
本地音频合并进分组音频或者大厅音频中。 |
3.4 |
|
切换订阅的音频流到指定的分组或者大厅音频。 |
3.4 |
|
查询当前订阅的音频的类型,可能是大厅音频,也可能是某个分组的音频。 |
3.4 |
媒体引擎相关接口
API |
描述 |
支持的最低版本 |
发送媒体扩展信息 |
3.4 |
预览相关接口
API |
描述 |
支持的最低版本 |
开启本地视频预览。 |
3.0 |
|
关闭本地视频预览。 |
3.0 |
远端用户查询接口
API |
描述 |
支持的最低版本 |
获取远端在线用户列表。 |
3.0 |
|
查询用户是否在线。 |
3.0 |
|
查询远端用户状态。 |
3.0 |
其他接口
API |
描述 |
支持的最低版本 |
根据错误码,获取错误码描述。 |
3.0 |
|
是否分发回调到主线程。 |
3.0 |
|
指定回调线程队列。 |
3.0 |
|
获取当前网络链接状态。 |
3.0 |
|
设置算法或者其他私有参数。 |
3.4.2 |
|
将I420格式的视频帧进行角度的旋转。 |
3.1.0 |
接口详情
-
destroy: 销毁DingRtcEngine::sharedInstance:extras:创建的DingRtcEngine实例。
void destroy ()
调用该方法将会释放所有内部使用的资源,当完成音视频通信之后都建议调用该方法释放实例.调用该方法后,你将不能再使用 DingRtcEngine 的其他方法和任何回调。
重要该方法为同步调用,需要等待内部资源释放之后才能执行其他方法,为避免主线程阻塞,建议开发者放在子线程调用该方法,但需要注意的是如需在销毁后再次创建 DingRtcEngine 实例,请开发者务必保证 destroy 方法执行结束后再创建实例。为避免死锁,不建议在任何SDK的回调中调用本方法。
-
createInstance: 创建并获取一个DingRtcEngine实例,多次调用返回多个实例。
instancetype _Nonnull createInstance (id< DingRtcEngineDelegate >_Nullable delegate,[extras] NSString *_Nullable extras)
参数说明
参数
类型
描述
delegate
DingRtcEngineDelegate
用于接收DingRtc相关事件回调的代理。
extras
NSString *_Nullable
用于接收来自客户灰度下发的参数,通过JSON配置SDK的特别功能,可以是空字符串。
-
destroyInstance: 销毁DingRtcEngine::sharedInstance:extras:或者DingRtcEngine::createInstance:extras:创建的DingRtcEngine实例。
void destroyInstance (DingRtcEngine *_Nonnull instance)
调用该方法将会释放所有内部使用的资源,当完成音视频通信之后都建议调用该方法释放实例.调用该方法后,你将不能再使用 DingRtcEngine 的其他方法和任何回调。
参数说明
参数
类型
描述
instance
DingRtcEngine
DingRtcEngine的实例。
重要为避免死锁,不建议在任何SDK的回调中调用本方法。
-
getSDKVersion: 查询SDK当前版本号。
NSString *_Nonnull getSDKVersion ()
返回说明
当前的SDK版本号,格式为字符串,例:"3.0.0.0"。
重要在任何时刻都可以调用。
-
setLogDirPath: 设置SDK日志文件保存路径。
int setLogDirPath (NSString *_Nullable logDirPath)
参数说明
参数
类型
描述
logDirPath
NSString *_Nullable
日志文件保存目录的绝对路径,该参数是一个目录路径,而不是文件的路径。
返回说明
- 0,成功;
- 非0,失败。其中有两种错误码,释义如下:
- DingRtcErrLogRootPathError:路径已存在或因权限问题不可访问。
- DingRtcErrLogAlreadyInit:log对象已经初始化过。
重要调用此接口,请在调用其他所有SDK接口前调用本接口,避免日志出现丢失。同时,App必须保证指定的目录已存在并且可以写入。
如果,目标路径不可写入或创建日志文件失败,则会使用默认日志路径。本次设置将无效。
-
setLogLevel: 设置日志等级。
int setLogLevel (DingRtcLogLevel logLevel)
参数说明
参数
类型
描述
logLevel
DingRtcLogLevel
Log级别,详见DingRtcLogLevel枚举类型。
返回说明
- 0:成功;
- 非0:失败。比如没有先调用setLogDirPath。
重要设置 SDK 的输出日志等级。默认值为 DingRtcLogLevel::DingRtcLogLevelInfo 。
调用此接口,请在仅次于SetLogDirPath接口调用之后再调用本接口,避免因日志等级切换造成的打印丢失。
-
getErrorDescription: 根据错误码,获取错误码描述。
NSString *_Nullable getErrorDescription (NSInteger errCode)
参数说明
参数
类型
描述
errCode
NSInteger
错误码,详见DingRtcErrorCode。
返回说明
错误码描述字符串。
重要在任何时刻都可以调用。
-
enableDelegateMainQueue: 是否分发回调到主线程。
int enableDelegateMainQueue (BOOL enabled)
参数说明
参数
类型
描述
enabled
BOOL
YES:回调分发至主线程队列。
NO:回调不分发至主线程队列。
返回说明
0表示Success;非0表示Failure。
重要回调默认分发至主线程队列(iOS Default:YES,Mac Default:NO)。
-
setDelegateQueue: 指定回调线程队列。
int setDelegateQueue (NSOperationQueue *_Nullable queue)
参数说明
参数
类型
描述
queue
NSOperationQueue *_Nullable
回调queue。
返回说明
0表示Success;非0表示Failure。
重要enableDelegateMainQueue为YES时,此接口设置无效,回调线程为主线程。
enableDelegateMainQueue为NO时,可通过此接口指定回调线程,若不设置,则使用SDK的默认子线程。
-
joinChannel: 加入频道。
int joinChannel (DingRtcAuthInfo *_Nonnull authInfo,[name] NSString *_Nullable userName,[onResultWithUserId] void(^_Nullable onResult)(NSInteger errCode, NSString *_Nonnull channel, NSString *_Nonnull userId, NSInteger elapsed))
该方法让用户加入频道,一个频道内可以加入多个用户进行互相通话。
参数说明
参数
类型
描述
authInfo
认证信息,从AppServer获取。
userName
NSString *_Nullable
任意用于显示的用户名称。不是用户ID。
onResult
void(^)(NSInteger errCode, NSString *_Nonnull channel, NSString *_Nonnull userId, NSInteger elapsed)
当joinChannel执行结束后调用这个回调。
返回说明
- 0:成功;
- 非0:失败。
重要正常情况一个Appid对应一个App,只有同一个AppId的应用可进行互相通话,不同AppId和channelID不同都不能互通。
当入会成功后,会触发远端用户收到 回调。
如果已在会中想重新入会,需要先调用 leaveChannel 离会,且确保 回调收到后,再次调用进行入会。
-
leaveChannel: 离开频道。
int leaveChannel ()
- 调用该方法代表离开频道,即挂断或者停止通话。
- 该方法为异步方法,调用后收到 onLeaveChannelResult 代表退出频道完成,同时会触发远端用户收到 onRemoteUserOffLineNotify 回调。
- 如果未加入频道入会,leaveChannel 不会有任何影响。加入频道后,必须要调用该方法离开频道,否则无法加入其他频道。
- 0:成功;
- 非0:失败。
- 失败原因错误码见回调函数:onLeaveChannelResult。
-
getAudioGroupHallId: 返回音频分组大厅ID,可以根据此ID判断一个group是不是大厅。
NSString *_Nonnull getAudioGroupHallId ()
关于音频分组概念:音频分组,允许频道内的成员建立工作组(group)。User加入一个group后,可以向这个group发言,也可以收听这个group内的音频。 音频分组不影响视频的 publish 和 subscribe,即使2个user不在同一个group,也可以看见对方。 大厅(hall):如果一个user当前不在任何一个group中,那么他就留在大厅中。大厅是一个特殊的 group,通过离开/加入一个group间接的达到加入/离开大厅的效果。 如果user在大厅中,那么他可以对大厅中的人发言,也可以订阅大厅音频。 权限约束:user无权对不在其中的group (含hall)发言,或者收听音频。 音频订阅约束:user不可以同时订阅多个group (含hall)的音频,这个是为了应对一个user出现在多个group中,以及过量的多路音频(比如6路音频)混音后造成理解困难的问题。
返回说明
音频分组大厅ID。
-
joinAudioGroup: 加入音频分组。如果分组当前不存在,则自动创建一个。
int joinAudioGroup (NSString *_Nonnull groupId,[usrData] NSString *_Nullable usrData)
参数说明
参数
类型
描述
groupId
NSString *_Nonnull
指定加入的音频分组,不可以是大厅(audioGroupHallId)。
usrData
NSString *_Nullable
可以额外提供一个字符串,业务层自行解释。长度不超过64字节。
返回说明
- 如果返回0,结果将会通过onAudioGroupJoinResult通知app。
- 如果返回<0,则调用失败,不会有通知消息onAudioGroupJoinResult。
重要usrData暂时未支持。
-
leaveAudioGroup: 离开音频分组。
int leaveAudioGroup (NSString *_Nonnull groupId)
参数说明
参数
类型
描述
groupId
NSString *_Nonnull
要离开的音频分组,不可以是大厅(audioGroupHallId)。
返回说明
- 如果返回0,结果将会通过onAudioGroupLeaveResult通知app。
- 如果返回<0,则调用失败,不会有通知消息onAudioGroupLeaveResult。
重要如果离开了分组,那么没有权限再订阅该分组的音频,也没有权限向该分组mix音频流。
-
dismissAudioGroup: 解散音频分组,所有成员被迫离开该音频分组。
int dismissAudioGroup (NSString *_Nonnull groupId)
参数说明
参数
类型
描述
groupId
NSString *_Nonnull
要解散的音频分组,不可以是大厅(audioGroupHallId)。
返回说明
- 如果返回0,结果将会通过onAudioGroupDismissResult通知app。
- 如果返回<0,则调用失败,不会有通知消息onAudioGroupDismissResult。
-
mixAudioToGroup: 本地音频合并进分组音频或者大厅音频中。
int mixAudioToGroup (NSString *_Nonnull groupId,[mix] BOOL mix)
参数说明
参数
类型
描述
groupId
NSString *_Nonnull
指定的音频分组,可以是大厅(audioGroupHallId)。
mix
BOOL
true表示合并,false表示不合并。
返回说明
- 如果返回0,结果将会通过onAudioGroupMixResult通知app。
- 如果返回<0,则调用失败,不会有通知消息onAudioGroupMixResult。
重要前提条件:1,已经做了音频的publish; 2,权限要求:用户需要在目标分组或者大厅中。
-
switchSubscriptionToAudioGroup: 切换订阅的音频流到指定的分组或者大厅音频。
int switchSubscriptionToAudioGroup (NSString *groupId)
参数说明
参数
类型
描述
groupId
NSString *
指定的音频分组,可以是大厅(audioGroupHallId)。
返回说明
- 如果返回0,结果将会通过onAudioSubscribeStateChanged通知app。
- 如果返回<0,则调用失败,不会有通知消息onAudioSubscribeStateChanged。
重要业务层监听 onAudioSubscribeStateChanged 通知,如果uid为"",检查newState == DingRtcStatsSubscribed,再查询当前订阅成功的音频类型(通过getCurrentSubscribedAudio),可判断是否切换成功。切换过程会有多次 onAudioSubscribeStateChanged 通知。
-
getCurrentSubscribedAudio: 查询当前订阅的音频的类型,可能是大厅音频,也可能是某个分组的音频。
NSString *_Nullable getCurrentSubscribedAudio ()
返回说明
返回的是 groupId,如果 nil 或者 "",表示无订阅,如果是audioGroupHallId,表示大厅音频,否则,返回分组音频对应的分组ID。
-
joinChannel: 加入频道。
int joinChannel (DingRtcAuthInfo *_Nonnull authInfo,[name] NSString *_Nullable userName,[onResultWithUserId] void(^_Nullable onResult)(NSInteger errCode, NSString *_Nonnull channel, NSString *_Nonnull userId, NSInteger elapsed))
该方法让用户加入频道,一个频道内可以加入多个用户进行互相通话。
参数说明
参数
类型
描述
authInfo
认证信息,从AppServer获取。
userName
NSString *_Nullable
任意用于显示的用户名称。不是用户ID。
onResult
void(^)(NSInteger errCode, NSString *_Nonnull channel, NSString *_Nonnull userId, NSInteger elapsed)
当joinChannel执行结束后调用这个回调。
返回说明
- 0:成功;
- 非0:失败。
重要正常情况一个Appid对应一个App,只有同一个AppId的应用可进行互相通话,不同AppId和channelID不同都不能互通。
当入会成功后,会触发远端用户收到 回调。
如果已在会中想重新入会,需要先调用 leaveChannel 离会,且确保 回调收到后,再次调用进行入会。
-
leaveChannel: 离开频道。
int leaveChannel ()
- 调用该方法代表离开频道,即挂断或者停止通话。
- 该方法为异步方法,调用后收到 onLeaveChannelResult 代表退出频道完成,同时会触发远端用户收到 onRemoteUserOffLineNotify 回调。
- 如果未加入频道入会,leaveChannel 不会有任何影响。加入频道后,必须要调用该方法离开频道,否则无法加入其他频道。
- 0:成功;
- 非0:失败。
- 失败原因错误码见回调函数:onLeaveChannelResult。
-
isInCall: 获取状态:当前是否在频道中。
BOOL isInCall ()
返回说明
- YES,表示当前已经加入了频道。
- NO, 表示当前不在频道中。
重要该方法可在加入频道前或加入频道后调用。
-
getUserInfo: 查询远端用户状态。
NSDictionary *_Nullable getUserInfo (NSString *_Nonnull uid)
参数说明
参数
类型
描述
uid
NSString *_Nonnull
用户ID。从Appserver分配的唯一标示符。
返回说明
- dict App提供的容器,用于存放用户数据,dict类型为字典类型,通过{Key,Value}进行访问。
- dict[userID] != "" 成功。 - dict[userID] == @"" 失败。
重要通过 uid 查询,指定远端用户的状态信息,在参数dict中,以字典{key,value}的形式,返回用户的全部状态信息。
Key信息:
userID:远端用户的ID。
isOnline:远端用户是否在线。
displayName:远端用户的名称。
hasAudio:远端用户是否推送了音频流。
hasCamera:远端用户是否推送了相机流。
hasScreenSharing:远端用户是否推送了屏幕流。
requestAudio:本端是否订阅了此远端用户的音频流。
requestCamera:本端是否订阅了此远端用户的相机流。此状态,系在成功订阅该用户摄像头流前的状态。
requestScreenSharing:本端是否订阅了此远端用户的屏幕流。此状态,系在成功订阅该用户屏幕共享前的状态。
preferCameraType:如果网络带宽允许,优先订阅的相机流的大小规格,选择范围:FHD, HD, SD, LD。
subScribedAudio:本端是否拉到了此远端用户的音频流。
subScribedCameraType:本端拉到了此远端用户的相机流的大小规格,可能的值:FHD, HD, SD, LD。
subScribedScreenSharing:本端是否拉到了此远端用户的屏幕流。
hasCameraView:本端是否设置了此远端用户相机流的view。
hasScreenView:本端是否设置了此远端用户屏幕流的view。
isCameraMirror:本端是否设置了此远端用户的相机流为镜像。
isScreenMirror:本端是否设置了此远端用户的屏幕流为镜像。
-
publishLocalVideoStream: 是否推送本地视频流。
int publishLocalVideoStream (BOOL enabled)
参数说明
参数
类型
描述
enabled
BOOL
是否开启/关闭本地视频流推流。
YES:开启视频流推送。
NO:关闭视频流推送。
返回说明
- 0:设置成功;
- <0:设置失败。
- DingRtcErrInner:SDK内部状态错误,需检查是否创建SDK实例成功。
重要SDK默认设置为推送视频流,加入频道前调用此接口设置推送视频流,将在加入频道成功时生效,加入频道成功后可以随时调用此接口开启/关闭视频流推送。
本地视频流内容默认为摄像头采集视频,如需自定义输入视频推送内容,可参考接口setExternalVideoSource使用外部视频输入替换摄像头采集。
本地视频推流结果发生变化时,SDK会触发onVideoPublishStateChanged回调通知视频推流最新状态。
-
publishLocalAudioStream: 是否推送音频流。
int publishLocalAudioStream (BOOL enabled)
参数说明
参数
类型
描述
enabled
BOOL
是否开启/关闭本地音频流推流。
YES:开启音频流推送。
NO:关闭音频流推送。
返回说明
- 0:设置成功;
- <0:设置失败。
- DingRtcErrInner:SDK内部状态错误,需检查是否创建SDK实例成功。
重要SDK默认设置推送音频流,加入频道前调用此接口设置推送音频流,将在加入频道成功时生效,加入频道成功后可以随时调用此接口开启/关闭音频流推送。
本地音频流内容默认为麦克风采集音频,如需自定义输入音频推送内容,可参考接口setExternalAudioSource使用外部音频输入替换麦克风采集。
本地音频推流结果发生变化时,SDK会触发回调通知音频推流最新状态。
-
isLocalVideoStreamPublished: 查询是否设置推送视频流。
BOOL isLocalVideoStreamPublished ()
返回说明
- YES:已设置推送;
- NO:未设置推送。
重要SDK默认设置推送视频流,如果需要取消推送视频流,可以通过publishLocalVideoStream方法设置为不推送。
-
isLocalAudioStreamPublished: 查询是否设置推送音频流。
BOOL isLocalAudioStreamPublished ()
返回说明
- YES:已设置推送;
- NO:未设置推送。
重要SDK默认设置推送音频流,如果需要取消推送音频流,可以通过publishLocalAudioStream方法设置为不推送。
-
setRemoteVideoStreamType: 设置订阅视频流分辨率规格。
int setRemoteVideoStreamType (NSString *_Nonnull uid,[type] DingRtcVideoStreamType streamType)
参数说明
参数
类型
描述
uid
NSString *_Nonnull
用户ID,从Appserver分配的唯一标示符。
streamType
DingRtcVideoStreamType
视频流的分辨率规格,详见DingRtcVideoStreamType。
返回说明
- 0:设置成功;
- 非0:设置失败。
-
setRemoteDefaultVideoStreamType: 设置默认订阅的视频流分辨率规格;如果不设置,则默认订阅最大的分辨率规格。
int setRemoteDefaultVideoStreamType (DingRtcVideoStreamType streamType)
参数说明
参数
类型
描述
streamType
DingRtcVideoStreamType
视频流的分辨率规格,详见DingRtcVideoStreamType。
返回说明
- 0:设置成功;
- <0:设置失败。
-
subscribeAllRemoteAudioStreams: 停止/恢复订阅所有远端音频流,包含后入会成员的订阅。
int subscribeAllRemoteAudioStreams (BOOL sub)
参数说明
参数
类型
描述
sub
BOOL
是否订阅所有远端音频流。
YES:订阅所有用户的音频流,后入会成员会自动订阅其音频。
NO:停止订阅所有用户的音频流,后入会成员也不会自动订阅其音频。
返回说明
- 0:设置成功;
- <0:设置失败。
重要入会前入会后均可以调用。
-
subscribeAllRemoteVideoStreams: 停止/恢复订阅所有远端视频流,包含后入会成员的订阅。
int subscribeAllRemoteVideoStreams (BOOL sub)
参数说明
参数
类型
描述
sub
BOOL
是否订阅所有远端视频流。
YES:订阅所有用户的视频流,后入会成员会自动订阅其视频。
NO:停止订阅所有用户的视频流,后入会成员也不会自动订阅其视频。
返回说明
- 0:设置成功;
- <0:设置失败。
重要入会前入会后均可以调用。
如果设置了 subscribeAllRemoteVideoStreams:NO,会取消订阅已订阅的远端视频流,同时后面再入会的人不会进行自动订阅;但是依然可以通过 来主动订阅某个人的远端视频流。
-
subscribeRemoteVideoStream: 停止/恢复订阅远端用户的视频流。
int subscribeRemoteVideoStream (NSString *_Nonnull uid,[track] DingRtcVideoTrack track,[sub] BOOL sub)
参数说明
参数
类型
描述
uid
NSString *_Nonnull
用户ID,从Appserver分配的唯一标示符。
track
DingRtcVideoTrack
视频流类型,详见DingRtcVideoTrack。
sub
BOOL
是否订阅远端用户的视频流。
YES:订阅指定用户的视频流。
NO:停止订阅指定用户的视频流。
返回说明
- 0:设置成功;
- <0:设置失败。
重要如果设置了 subscribeAllRemoteVideoStreams:NO,会取消订阅已订阅的远端视频流,同时后面再入会的人不会进行自动订阅;但是依然可以通过 来主动订阅某个人的远端视频流。
-
getOnlineRemoteUsers: 获取远端在线用户列表。
NSArray< NSString * > *_Nullable getOnlineRemoteUsers ()
返回说明
当前频道内所有在线用户userid列表。
-
isUserOnline: 查询用户是否在线。
BOOL isUserOnline (NSString *_Nonnull uid)
参数说明
参数
类型
描述
uid
NSString *_Nonnull
用户ID,从Appserver分配的唯一标示符。不可为NULL。
返回说明
- YES,用户在线;
- NO,用户不在线。
重要根据特定的UserID,查询该用户是否在线。
-
getCurrentConnectionStatus: 获取当前网络链接状态。
DingRtcConnectionStatus getCurrentConnectionStatus ()
返回说明
当前链接状态, 参考DingRtcConnectionStatus。
重要网络链接状态发生变化时,SDK会通过onConnectionStatusChanged回调通知。
入会前调用此接口,均返回状态DingRtcConnectionStatusDisconnected。
-
setRemoteVideoStreamType: 设置订阅视频流分辨率规格。
int setRemoteVideoStreamType (NSString *_Nonnull uid,[type] DingRtcVideoStreamType streamType)
参数说明
参数
类型
描述
uid
NSString *_Nonnull
用户ID,从Appserver分配的唯一标示符。
streamType
DingRtcVideoStreamType
视频流的分辨率规格,详见DingRtcVideoStreamType。
返回说明
- 0:设置成功;
- 非0:设置失败。
-
setRemoteDefaultVideoStreamType: 设置默认订阅的视频流分辨率规格;如果不设置,则默认订阅最大的分辨率规格。
int setRemoteDefaultVideoStreamType (DingRtcVideoStreamType streamType)
参数说明
参数
类型
描述
streamType
DingRtcVideoStreamType
视频流的分辨率规格,详见DingRtcVideoStreamType。
返回说明
- 0:设置成功;
- <0:设置失败。
-
subscribeAllRemoteAudioStreams: 停止/恢复订阅所有远端音频流,包含后入会成员的订阅。
int subscribeAllRemoteAudioStreams (BOOL sub)
参数说明
参数
类型
描述
sub
BOOL
是否订阅所有远端音频流。
YES:订阅所有用户的音频流,后入会成员会自动订阅其音频。
NO:停止订阅所有用户的音频流,后入会成员也不会自动订阅其音频。
返回说明
- 0:设置成功;
- <0:设置失败。
重要入会前入会后均可以调用。
-
subscribeAllRemoteVideoStreams: 停止/恢复订阅所有远端视频流,包含后入会成员的订阅。
int subscribeAllRemoteVideoStreams (BOOL sub)
参数说明
参数
类型
描述
sub
BOOL
是否订阅所有远端视频流。
YES:订阅所有用户的视频流,后入会成员会自动订阅其视频。
NO:停止订阅所有用户的视频流,后入会成员也不会自动订阅其视频。
返回说明
- 0:设置成功;
- <0:设置失败。
重要入会前入会后均可以调用。
如果设置了 subscribeAllRemoteVideoStreams:NO,会取消订阅已订阅的远端视频流,同时后面再入会的人不会进行自动订阅;但是依然可以通过 来主动订阅某个人的远端视频流。
-
subscribeRemoteVideoStream: 停止/恢复订阅远端用户的视频流。
int subscribeRemoteVideoStream (NSString *_Nonnull uid,[track] DingRtcVideoTrack track,[sub] BOOL sub)
参数说明
参数
类型
描述
uid
NSString *_Nonnull
用户ID,从Appserver分配的唯一标示符。
track
DingRtcVideoTrack
视频流类型,详见DingRtcVideoTrack。
sub
BOOL
是否订阅远端用户的视频流。
YES:订阅指定用户的视频流。
NO:停止订阅指定用户的视频流。
返回说明
- 0:设置成功;
- <0:设置失败。
重要如果设置了 subscribeAllRemoteVideoStreams:NO,会取消订阅已订阅的远端视频流,同时后面再入会的人不会进行自动订阅;但是依然可以通过 来主动订阅某个人的远端视频流。
-
setLocalViewConfig: 设置本地预览显示视图。
int setLocalViewConfig (DingRtcVideoCanvas *_Nullable viewConfig,[forTrack] DingRtcVideoTrack track)
参数说明
参数
类型
描述
viewConfig
本地视频显示属性,详细见DingRtcVideoCanvas。
track
DingRtcVideoTrack
只支持DingRtcVideoTrackCameraDingRtcVideoTrackScreen。
返回说明
- 0 :成功;
- < 0 :失败。
重要支持joinChannel之前和之后切换窗口。如果canvas或者DingRtcVideoCanvas::view为nil,则停止显示。 如果需要重新设置DingRtcVideoCanvas::renderMode,请保持canvas中其他属性不变,仅修改 DingRtcVideoCanvas::renderMode。 如果需要重新设置DingRtcVideoCanvas::mirrorMode,请保持canvas中其他属性不变,仅修改 DingRtcVideoCanvas::mirrorMode。
-
isCameraOn: 检查camera是否打开。
BOOL isCameraOn ()
返回说明
- YES:表示摄像头已打开;
- NO:表示摄像头没有打开。
重要该接口用于检查当前camera的状态。
-
enableLocalVideo: 禁用或启用本地视频采集。
int enableLocalVideo (BOOL enabled)
参数说明
参数
类型
描述
enabled
BOOL
YES:启用本地视频采集。
NO:禁用本地视频采集。
返回说明
- 0 :成功;
- < 0 :失败。
重要默认为开启状态。
-
muteLocalCamera: 暂停/恢复本地视频流的发送。
int muteLocalCamera (BOOL mute,[forTrack] DingRtcVideoTrack track)
参数说明
参数
类型
描述
mute
BOOL
YES表示暂停视频流的发送。
NO表示恢复视频流的发送。
track
DingRtcVideoTrack
只支持和 DingRtcVideoTrackScreen。
返回说明
- 0:表示Success;
- 非0:表示Failure。
重要视频流暂停发送时,采集和编码模块仍然在工作。
-
setVideoEncoderConfiguration: 设置相机流视频编码属性。
void setVideoEncoderConfiguration (DingRtcVideoEncoderConfiguration *_Nonnull config)
该方法用于设置相机流视频编码属性对应的视频参数,如分辨率、帧率、码率、视频方向等所有设置的参数都有相应的范围限制,如果设置的参数不在有效范围内,SDK会自动调节。
参数说明
参数
类型
描述
config
预定义的编码属性,详见DingRtcVideoEncoderConfiguration。
重要该方法在入会前和入会后都可以调用,如果每次入会只需要设置一次相机流视频编码属性,建议在入会前调用。
-
enableBeautyFace: 开启或关闭视频美颜。
int enableBeautyFace (BOOL enable,[withOption] DingRtcBeautyFaceOptions *_Nonnull options)
参数说明
参数
类型
描述
enable
BOOL
是否开启。
options
DingRtcBeautyFaceOptions
美颜参数。
返回说明
- 0:成功;
- 非0:失败。
-
enableVirtualBackground: 开启或关闭虚拟背景。
int enableVirtualBackground (BOOL enable,[withOption] DingRtcVirtualBackgroundOptions *options)
参数说明
参数
类型
描述
enable
BOOL
是否开启。
options
DingRtcVirtualBackgroundOptions
虚拟背景参数。
返回说明
- 0:成功;
- 非0:失败。
-
setVideoEnhance: 设置视频暗光增强功能。
int setVideoEnhance (DingRtcVideoEnhanceOptions *_Nonnull options)
参数说明
参数
类型
描述
options
DingRtcVideoEnhanceOptions
视频暗光增强参数。
返回说明
- 0:成功;
- 非0:失败。
-
setVideoDenoise: 设置视频去噪场景功能。
int setVideoDenoise (DingRtcVideoDenoiseOptions *_Nonnull options)
参数说明
参数
类型
描述
options
DingRtcVideoDenoiseOptions
视频去噪参数。
返回说明
- 0:成功;
- 非0:失败。
-
setVideoFrameDelegate: 设置视频帧观察器。
int setVideoFrameDelegate (id< DingRtcVideoFrameDelegate > _Nullable delegate)
参数说明
参数
类型
描述
delegate
DingRtcVideoFrameDelegate
DingRtcVideoFrameDelegate对象。
返回说明
- 0:成功;
- 非0:失败。
-
enableVideoFrameObserver: 设置视频帧数据观察开关。
int enableVideoFrameObserver (BOOL enable,[position] DingRtcVideoObservePosition position)
参数说明
参数
类型
描述
enable
BOOL
是否允许数据回调。
position
DingRtcVideoObservePosition
视频数据类型,详见DingRtcVideoObservePosition。
返回说明
0:sucess。
-
startPreview: 开启本地视频预览。
int startPreview ()
返回说明
- 0 :成功;
- < 0 :失败。
重要如果没有调用setLocalViewConfig设置显示的view,则无法预览。 可以在joinChannel之前就开启预览会自动打开摄像头。
-
stopPreview: 关闭本地视频预览。
int stopPreview ()
返回说明
- 0 :成功;
- < 0 :失败。
重要leaveChannel会自动停止本地预览;如果没有在推相机流,则会自动关闭摄像头。
-
publishLocalVideoStream: 是否推送本地视频流。
int publishLocalVideoStream (BOOL enabled)
参数说明
参数
类型
描述
enabled
BOOL
是否开启/关闭本地视频流推流。
YES:开启视频流推送。
NO:关闭视频流推送。
返回说明
- 0:设置成功;
- <0:设置失败。
- DingRtcErrInner:SDK内部状态错误,需检查是否创建SDK实例成功。
重要SDK默认设置为推送视频流,加入频道前调用此接口设置推送视频流,将在加入频道成功时生效,加入频道成功后可以随时调用此接口开启/关闭视频流推送。
本地视频流内容默认为摄像头采集视频,如需自定义输入视频推送内容,可参考接口setExternalVideoSource使用外部视频输入替换摄像头采集。
本地视频推流结果发生变化时,SDK会触发onVideoPublishStateChanged回调通知视频推流最新状态。
-
setAudioDenoise: 设置音频去噪功能。
int setAudioDenoise (DingRtcAudioDenoiseOptions *_Nonnull options)
参数说明
参数
类型
描述
options
DingRtcAudioDenoiseOptions
音频去噪参数。
返回说明
- 0:成功;
- 非0:失败。
重要音乐场景下会自动关闭去噪功能。
-
muteLocalMic: 停止/恢复本地音频数据发送。
int muteLocalMic (BOOL mute,[mode] DingRtcMuteLocalAudioMode mode)
参数说明
参数
类型
描述
mute
BOOL
YES表示静音本地音频,发送静音帧。
NO表示取消静音。
mode
DingRtcMuteLocalAudioMode
静音模式,静音模式分三种,详见DingRtcMuteLocalAudioMode,默认模式为静音本地麦克风采集音频和所有外部输入音频。
返回说明
- 0:成功;
- 非0:失败。
重要静音是指音频流发送静音帧,采集和编码模块仍然在工作。
-
publishLocalAudioStream: 是否推送音频流。
int publishLocalAudioStream (BOOL enabled)
参数说明
参数
类型
描述
enabled
BOOL
是否开启/关闭本地音频流推流。
YES:开启音频流推送。
NO:关闭音频流推送。
返回说明
- 0:设置成功;
- <0:设置失败。
- DingRtcErrInner:SDK内部状态错误,需检查是否创建SDK实例成功。
重要SDK默认设置推送音频流,加入频道前调用此接口设置推送音频流,将在加入频道成功时生效,加入频道成功后可以随时调用此接口开启/关闭音频流推送。
本地音频流内容默认为麦克风采集音频,如需自定义输入音频推送内容,可参考接口setExternalAudioSource使用外部音频输入替换麦克风采集。
本地音频推流结果发生变化时,SDK会触发回调通知音频推流最新状态。
-
setRemoteViewConfig: 设置远端视频显示视图。
int setRemoteViewConfig (DingRtcVideoCanvas *_Nullable canvas,[uid] NSString *_Nonnull uid,[forTrack] DingRtcVideoTrack track)
参数说明
参数
类型
描述
canvas
本地视频显示属性,详细见DingRtcVideoCanvas。
uid
NSString *_Nonnull
UserID,从Appserver分配的唯一标示符。
track
DingRtcVideoTrack
只支持DingRtcVideoTrackCameraDingRtcVideoTrackScreen。
返回说明
- 0 :成功;
- < 0 :失败。
重要支持joinChannel之前和之后切换窗口。如果canvas或者view为nil,则停止显示。 如果需要重新设置renderMode,请保持canvas中其他属性不变,仅修改 renderMode。 如果需要重新设置mirrorMode,请保持canvas中其他属性不变,仅修改 mirrorMode。
-
updateViewConfig: 更新本地或远端视频视图属性。
int updateViewConfig (DingRtcVideoCanvas *_Nonnull canvas,[uid] NSString *_Nullable uid,[forTrack] DingRtcVideoTrack track)
参数说明
参数
类型
描述
canvas
视频显示属性,详细见DingRtcVideoCanvas。
uid
NSString *_Nullable
UserID,从Appserver分配的唯一标示符。uid为nil或者为""代表本地用户。
track
DingRtcVideoTrack
只支持DingRtcVideoTrackCameraDingRtcVideoTrackScreen。
返回说明
- 0 :成功;
- < 0 :失败。
重要支持joinChannel之前和之后设置。设置view为需要更新的view, 目前支持更新mirrorMode, renderMode, rotationMode
-
setCameraCapturerConfiguration: 设置camera采集偏好(仅适用于iOS系统)。
int setCameraCapturerConfiguration (DingRtcCameraCapturerConfiguration *_Nonnull config)
参数说明
参数
类型
描述
config
cameraDirection:设置采集方向,前置或后置。
返回说明
0为成功;非0失败。
重要必须在打开摄像头之前设置,如startPreview之前设置。
-
switchCamera: 切换前后摄像头(仅适用于iOS系统)。
int switchCamera ()
返回说明
- 0:表示Success;
- 非0:表示Failure。
-
setCameraZoom: 设置摄像头缩放。
int setCameraZoom (float zoom)
参数说明
参数
类型
描述
zoom
float
缩放级别,范围从1到camera支持的最大zoom值。
返回说明
- 0:成功;
- 非0:失败。
-
setCameraFlash: 设置摄像头闪光灯开关。
int setCameraFlash (BOOL flash)
参数说明
参数
类型
描述
flash
BOOL
是否打开闪光灯。
返回说明
- 0:成功;
- 非0:失败。
-
isCameraFocusPointSupported: 摄像头是否支持手动聚焦。
BOOL isCameraFocusPointSupported ()
返回说明
- YES:支持;
- NO:不支持。
-
setCameraFocusPoint: 设置摄像头手动聚焦点。
int setCameraFocusPoint (CGPoint point)
参数说明
参数
类型
描述
point
CGPoint
聚焦点坐标,(相对坐标,取值范围0~1)。
返回说明
- 0:成功;
- 非0:失败。
-
isCameraExposurePointSupported: 摄像头是否支持设置曝光点。
BOOL isCameraExposurePointSupported ()
返回说明
- YES:支持;
- NO:不支持。
-
setCameraExposurePoint: 设置摄像头曝光点。
int setCameraExposurePoint (CGPoint point)
参数说明
参数
类型
描述
point
CGPoint
曝光点,(相对坐标,取值范围0~1)。
返回说明
- 0:成功;
- 非0:失败。
-
setDeviceOrientationMode: 设置设备方向(仅适用于iOS系统)。
void setDeviceOrientationMode (DingRtcOrientationMode orientation)
参数说明
参数
类型
描述
orientation
DingRtcOrientationMode
设备方向。
-
getCameraList: 获取摄像头列表(仅适用于Mac系统)。
NSArray< DingRtcDeviceInfo * > *_Nullable getCameraList ()
返回说明
找到的系统中摄像头名称列表。
-
getCameraList: 获取摄像头列表(仅适用于Mac系统)。
int getCameraList (void(^ onResult)(NSArray< DingRtcDeviceInfo * > *_Nullable))
返回说明
回调方式找到的系统中摄像头名称列表。
-
getCurrentCamera: 获取当前使用的摄像头名称(仅适用于Mac系统)。
NSString *_Nullable getCurrentCamera ()
-
getCurrentCameraID: 获取当前使用的摄像头ID(仅适用于Mac系统)。
NSString *_Nullable getCurrentCameraID ()
-
setCurrentCamera: 选择摄像头(Name)(仅适用于Mac系统)。
void setCurrentCamera (NSString *_Nonnull camera)
参数说明
参数
类型
描述
camera
NSString *_Nonnull
摄像头名称。
-
setCurrentCameraWithID: 选择摄像头(ID)(仅适用于Mac系统)。
void setCurrentCameraWithID (NSString *_Nonnull cameraID)
参数说明
参数
类型
描述
cameraID
NSString *_Nonnull
摄像头ID。
-
startRecord: 开始录制(仅适用于Mac系统)
BOOL startRecord (DingRtcRecordOptions *_Nonnull recordOptions,[filePath] NSString *_Nullable filePath,[fileName] NSString *_Nullable fileName)
SDK提供了开始录制的功能
参数说明
参数
类型
描述
recordOptions
DingRtcRecordOptions
录制视频内容及布局,详细定义见DingRtcRecordOptions
filePath
NSString *_Nullable
录制文件的本地保存路径
fileName
NSString *_Nullable
录制文件名
返回说明
- YES:成功
- NO:失败
-
updateRecordLayout: 更新录制内容信息(仅适用于Mac系统)。
BOOL updateRecordLayout (DingRtcRecordVideoLayout *_Nonnull layout)
SDK提供了更新录制内容信息的功能,用于实时更新录制模板内容设置
参数说明
参数
类型
描述
layout
DingRtcRecordVideoLayout
录制视频内容及布局,详细定义见DingRtcRecordVideoLayout
返回说明
- YES:成功,
- NO:失败。
重要updateRecordLayout更新录制内容信息应该在录制过程中调用
-
pauseRecord: 暂停录制(仅适用于Mac系统)。
BOOL pauseRecord ()
SDK提供了暂停录制的功能。
返回说明
- YES:成功,
- NO:失败。
-
resumeRecord: 重新开启录制(仅适用于Mac系统)。
BOOL resumeRecord ()
SDK提供了重新开始录制的功能。
返回说明
- YES:成功,
- NO:失败。
-
stopRecord: 停止录制(仅适用于Mac系统)
void stopRecord ()
SDK提供了停止录制的功能
-
snapshotVideo: 对指定用户的视频进行截图,生成一张JPG格式的图片,并保存至指定的路径。
int snapshotVideo (NSString *_Nullable userId,[type] DingRtcVideoTrack type,[filePath] NSString *_Nonnull filePath)
参数说明
参数
类型
描述
userId
NSString *_Nullable
用户ID,userId为nil或者为""代表本地用户。
type
DingRtcVideoTrack
视频流类型,只支持DingRtcVideoTrackCamera和DingRtcVideoTrackScreen。
filePath
NSString *_Nonnull
截图的本地保存路径,需精确到文件名及格式,请确保目录存在且可写。如xx/yy/zz.jpg。
返回说明
- 0:仅代表调用该接口成功,是否获取到截图画面,详细见 DingRtcEngineDelegate;
- < 0:失败。
重要视频截图功能为异步接口, 通过监听 DingRtcEngineDelegate::onSnapshotComplete:videoTrack:image:success: 回调获取当前截图画面。
-
setAudioDenoise: 设置音频去噪功能。
int setAudioDenoise (DingRtcAudioDenoiseOptions *_Nonnull options)
参数说明
参数
类型
描述
options
DingRtcAudioDenoiseOptions
音频去噪参数。
返回说明
- 0:成功;
- 非0:失败。
重要音乐场景下会自动关闭去噪功能。
-
muteLocalMic: 停止/恢复本地音频数据发送。
int muteLocalMic (BOOL mute,[mode] DingRtcMuteLocalAudioMode mode)
参数说明
参数
类型
描述
mute
BOOL
YES表示静音本地音频,发送静音帧。
NO表示取消静音。
mode
DingRtcMuteLocalAudioMode
静音模式,静音模式分三种,详见DingRtcMuteLocalAudioMode,默认模式为静音本地麦克风采集音频和所有外部输入音频。
返回说明
- 0:成功;
- 非0:失败。
重要静音是指音频流发送静音帧,采集和编码模块仍然在工作。
-
enableSpeakerphone: 设置音频输出为听筒还是扬声器(仅适用于iOS系统)。
int enableSpeakerphone (BOOL enable)
参数说明
参数
类型
描述
enable
BOOL
YES:扬声器模式(默认扬声器);NO:听筒模式。
返回说明
- 0:成功;
- <0:失败。
-
isSpeakerphoneEnabled: 获取当前音频输出为听筒还是扬声器(仅适用于iOS系统)。
BOOL isSpeakerphoneEnabled ()
返回说明
- YES:扬声器模式;
- NO:听筒模式。
-
setAudioSessionOperationRestriction: 设置SDK对AVAudioSession的控制权限
int setAudioSessionOperationRestriction (DingRtcAudioSessionOperationRestriction restriction)
参数说明
参数
类型
描述
restriction
DingRtcAudioSessionOperationRestriction
控制权限参数,详见DingRtcAudioSessionOperationRestriction。
返回说明
- 0: 成功
- 非0: 失败
-
setAudioProfile: 设置音频profile。
int setAudioProfile (DingRtcAudioProfile audio_profile,[audio_scene] DingRtcAudioScenario audio_scene)
参数说明
参数
类型
描述
audio_profile
DingRtcAudioProfile
音频采集/编码模式参数,详见DingRtcAudioProfile。
audio_scene
DingRtcAudioScenario
音频场景模式参数,详见DingRtcAudioScenario。
返回说明
- 0:成功;
- 其他:失败。
重要只支持joinChannel前设置有效。
-
startRecordingDeviceTest: 开始测试音频采集设备
int startRecordingDeviceTest ()
返回说明
0表示Success 非0表示Failure
重要请在joinChannel之前调用
-
stopRecordingDeviceTest: 停止测试音频采集设备
int stopRecordingDeviceTest ()
返回说明
0表示Success 非0表示Failure
重要请在joinChannel之前调用
-
startPlayoutDeviceTest: 开始测试音频播放设备
int startPlayoutDeviceTest (NSString *_Nonnull filePath)
参数说明
参数
类型
描述
filePath
NSString *_Nonnull
音频文件路径
返回说明
0表示Success 非0表示Failure
重要请在joinChannel之前调用
-
stopPlayoutDeviceTest: 停止测试音频播放设备
int stopPlayoutDeviceTest ()
返回说明
0表示Success 非0表示Failure
重要请在joinChannel之前调用
-
setPlayoutVolume: 设置音频播放音量,音量范围[0,100]
int setPlayoutVolume (NSUInteger volume)
参数说明
参数
类型
描述
volume
NSUInteger
音量值
返回说明
- 0: 成功
- <0: 失败
-
getPlayoutVolume: 获取音频播放音量
int getPlayoutVolume ()
返回说明
音量
-
setRecordingVolume: 设置音频采集音量,音量范围[0,100]
int setRecordingVolume (NSUInteger volume)
参数说明
参数
类型
描述
volume
NSUInteger
音量值
返回说明
- 0: 成功
- <0: 失败
-
getRecordingVolume: 获取音频采集音量
int getRecordingVolume ()
返回说明
音量
-
getAudioCaptures: 获取系统中的录音设备列表(仅适用于Mac系统)。
NSArray< DingRtcDeviceInfo * > *_Nullable getAudioCaptures ()
-
setCurrentAudioCaptureWithID: 选择录音设备(ID)(仅适用于Mac系统)。
void setCurrentAudioCaptureWithID (NSString *_Nonnull captureID)
参数说明
参数
类型
描述
captureID
NSString *_Nonnull
音频采集设备Id。
-
getAudioRenderers: 获取系统中的扬声器列表(仅适用于Mac系统)。
NSArray< DingRtcDeviceInfo * > *_Nullable getAudioRenderers ()
-
getCurrentAudioRendererID: 获取当前使用的扬声器ID(仅适用于Mac系统)。
NSString *_Nullable getCurrentAudioRendererID ()
-
setCurrentAudioRendererWithID: 选择扬声器(ID)(仅适用于Mac系统)。
void setCurrentAudioRendererWithID (NSString *_Nonnull rendererID)
参数说明
参数
类型
描述
rendererID
NSString *_Nonnull
音频播放设备ID。
-
setRecordingDeviceVolume: 设置音频采集设备音量(仅适用于Mac系统)。
int setRecordingDeviceVolume (NSInteger volume)
参数说明
参数
类型
描述
volume
NSInteger
音量范围[0,100]。
返回说明
0表示Success;非0表示Failure。
-
getRecordingDeviceVolume: 获取音频采集设备音量(仅适用于Mac系统)。
int getRecordingDeviceVolume ()
返回说明
音频采集设备音量,音量范围 [0, 100],返回1表示失败。
-
setPlayoutDeviceVolume: 设置音频播放设备音量(仅适用于Mac系统)。
int setPlayoutDeviceVolume (NSInteger volume)
参数说明
参数
类型
描述
volume
NSInteger
音量范围[0,100]
返回说明
0表示Success;非0表示Failure。
-
getPlayoutDeviceVolume: 获取音频播放设备音量(仅适用于Mac系统)。
int getPlayoutDeviceVolume ()
返回说明
音频播放设备音量,音量范围 [0, 100],返回1表示失败。
-
setRecordingDeviceMute: 静音音频采集设备(仅适用于Mac系统)。
int setRecordingDeviceMute (BOOL mute)
参数说明
参数
类型
描述
mute
BOOL
TRUE:设备设置为静音,FALSE:设备设置为不静音。
返回说明
0:方法调用成功;<0:方法调用失败。
-
getRecordingDeviceMute: 获取音频采集设备静音状态(仅适用于Mac系统)。
BOOL getRecordingDeviceMute ()
返回说明
TRUE:已静音状态;FALSE: 非静音状态。
-
setPlaybackDeviceMute: 静音音频播放设备(仅适用于Mac系统)。
int setPlaybackDeviceMute (BOOL mute)
参数说明
参数
类型
描述
mute
BOOL
TRUE:设备设置为静音,FALSE:设备设置为不静音。
返回说明
0:方法调用成功;<0:方法调用失败。
-
getPlaybackDeviceMute: 获取音频播放设备静音状态(仅适用于Mac系统)。
BOOL getPlaybackDeviceMute ()
返回说明
TRUE:已静音状态;FALSE:非静音状态。
-
setParameters: 设置算法或者其他私有参数。
int setParameters (NSString *_Nonnull params)
参数说明
参数
类型
描述
params
NSString *_Nonnull
用于接收来自客户设置的参数,通过JSON配置SDK的特别功能。
返回说明
- 0:成功;
- 其他:失败。
-
setCameraCapturerConfiguration: 设置camera采集偏好(仅适用于iOS系统)。
int setCameraCapturerConfiguration (DingRtcCameraCapturerConfiguration *_Nonnull config)
参数说明
参数
类型
描述
config
cameraDirection:设置采集方向,前置或后置。
返回说明
0为成功;非0失败。
重要必须在打开摄像头之前设置,如startPreview之前设置。
-
switchCamera: 切换前后摄像头(仅适用于iOS系统)。
int switchCamera ()
返回说明
- 0:表示Success;
- 非0:表示Failure。
-
setCameraZoom: 设置摄像头缩放。
int setCameraZoom (float zoom)
参数说明
参数
类型
描述
zoom
float
缩放级别,范围从1到camera支持的最大zoom值。
返回说明
- 0:成功;
- 非0:失败。
-
setCameraFlash: 设置摄像头闪光灯开关。
int setCameraFlash (BOOL flash)
参数说明
参数
类型
描述
flash
BOOL
是否打开闪光灯。
返回说明
- 0:成功;
- 非0:失败。
-
isCameraFocusPointSupported: 摄像头是否支持手动聚焦。
BOOL isCameraFocusPointSupported ()
返回说明
- YES:支持;
- NO:不支持。
-
setCameraFocusPoint: 设置摄像头手动聚焦点。
int setCameraFocusPoint (CGPoint point)
参数说明
参数
类型
描述
point
CGPoint
聚焦点坐标,(相对坐标,取值范围0~1)。
返回说明
- 0:成功;
- 非0:失败。
-
isCameraExposurePointSupported: 摄像头是否支持设置曝光点。
BOOL isCameraExposurePointSupported ()
返回说明
- YES:支持;
- NO:不支持。
-
setCameraExposurePoint: 设置摄像头曝光点。
int setCameraExposurePoint (CGPoint point)
参数说明
参数
类型
描述
point
CGPoint
曝光点,(相对坐标,取值范围0~1)。
返回说明
- 0:成功;
- 非0:失败。
-
setDeviceOrientationMode: 设置设备方向(仅适用于iOS系统)。
void setDeviceOrientationMode (DingRtcOrientationMode orientation)
参数说明
参数
类型
描述
orientation
DingRtcOrientationMode
设备方向。
-
getCurrentAudioCaptureID: 获取使用的录音设备ID(仅适用于Mac系统)。
NSString *_Nullable getCurrentAudioCaptureID ()
-
getCameraList: 获取摄像头列表(仅适用于Mac系统)。
NSArray< DingRtcDeviceInfo * > *_Nullable getCameraList ()
返回说明
找到的系统中摄像头名称列表。
-
getCameraList: 获取摄像头列表(仅适用于Mac系统)。
int getCameraList (void(^ onResult)(NSArray< DingRtcDeviceInfo * > *_Nullable))
返回说明
回调方式找到的系统中摄像头名称列表。
-
getCurrentCamera: 获取当前使用的摄像头名称(仅适用于Mac系统)。
NSString *_Nullable getCurrentCamera ()
-
getCurrentCameraID: 获取当前使用的摄像头ID(仅适用于Mac系统)。
NSString *_Nullable getCurrentCameraID ()
-
setCurrentCamera: 选择摄像头(Name)(仅适用于Mac系统)。
void setCurrentCamera (NSString *_Nonnull camera)
参数说明
参数
类型
描述
camera
NSString *_Nonnull
摄像头名称。
-
setCurrentCameraWithID: 选择摄像头(ID)(仅适用于Mac系统)。
void setCurrentCameraWithID (NSString *_Nonnull cameraID)
参数说明
参数
类型
描述
cameraID
NSString *_Nonnull
摄像头ID。
-
enableAudioVolumeIndication: 设置音量回调频率和平滑系数。
int enableAudioVolumeIndication (NSInteger interval,[smooth] NSInteger smooth,[reportVad] NSInteger reportVad)
参数说明
参数
类型
描述
interval
NSInteger
时间间隔,单位毫秒,最小值不得小于10ms,建议设置300-500ms,<=0表示不启用音量提示和说话人提示功能。
smooth
NSInteger
平滑系数,数值越大平滑程度越高,反之越低,实时性越好,建议设置3,范围[0,9]。
reportVad
NSInteger
说话人检测开关
1:开启。
0:关闭。
返回说明
- 0:成功;
- <0:失败。
重要设置之后,音频音量通过DingRtcEngineDelegate::onAudioVolumeIndication:回调。
-
setExternalAudioSource: 设置是否启用外部音频输入源。
int setExternalAudioSource (BOOL enable,[withSampleRate] NSUInteger sampleRate,[channelsPerFrame] NSUInteger channelsPerFrame)
参数说明
参数
类型
描述
enable
BOOL
YES:开启。
NO:关闭。
sampleRate
NSUInteger
采样率16k,48k...
channelsPerFrame
NSUInteger
声道数1:单声道;2:双声道。
返回说明
- >=0:成功;
- <0:失败。
-
pushExternalAudioFrame: 输入外部音频数据推流到远端。
int pushExternalAudioFrame (DingRtcAudioDataSample *_Nonnull data)
参数说明
参数
类型
描述
data
音频数据采样,详见DingRtcAudioDataSample。
返回说明
- <0:表示失败;
- 0:表示成功。
- 返回值为DingRtcErrorCode时,需要在间隔投递数据时间长度后再次重试投递。
重要为了保证语音连续性,SDK内部会有buffer缓存送进来的音频数据,以每次送10ms数据为例,如果返回DingRtcErrorCode::DingRtcErrAudioBufferFull时,说明内部缓冲区已满,建议等待20ms后再重新送当前数据帧。
-
registerAudioFrameObserver: 注册音频数据回调。
int registerAudioFrameObserver (id< DingRtcAudioFrameDelegate > _Nullable observer)
参数说明
参数
类型
描述
observer
DingRtcAudioFrameDelegate
音频数据回调,delegate=nil则停止回调数据。
返回说明
- 0:成功;
- 非0:失败。
重要需要调用enableAudioFrameObserver开启具体DingRtcAudioSource的回调。
-
enableAudioFrameObserver: 订阅音频数据。
int enableAudioFrameObserver (BOOL enable,[position] DingRtcAudioObservePosition position)
参数说明
参数
类型
描述
enable
BOOL
是否允许数据回调。
position
DingRtcAudioObservePosition
音频裸数据源类型,详见DingRtcAudioObservePosition。
返回说明
0:sucess。
-
enableAudioFrameObserver: 订阅音频数据。
int enableAudioFrameObserver (BOOL enable,[position] DingRtcAudioObservePosition position,[config] DingRtcAudioObserveConfig *_Nonnull config)
参数说明
参数
类型
描述
enable
BOOL
是否允许数据回调。
position
DingRtcAudioObservePosition
音频裸数据源类型,详见DingRtcAudioObservePosition。
config
音频回调数据格式及权限,详见DingRtcAudioObserveConfig。
返回说明
0:sucess。
-
enableAudioFrameObserver: 订阅音频数据。
int enableAudioFrameObserver (BOOL enable,[audioSource](deprecated) __attribute__)
参数说明
参数
类型
描述
enable
BOOL
是否允许数据回调。
audioSource
音频裸数据源类型,详见DingRtcAudioSource。
返回说明
0:sucess。
-
setExternalAudioRender: 设置是否启用外部音频渲染源
int setExternalAudioRender (BOOL enable,[withSampleRate] NSUInteger sampleRate,[channelsPerFrame] NSUInteger channelsPerFrame)
参数说明
参数
类型
描述
enable
BOOL
YES:开启;NO:关闭
sampleRate
NSUInteger
采样率16k,48k...
channelsPerFrame
NSUInteger
声道数1:单声道;2:双声道
返回说明
- >=0: 成功
- <0: 失败
-
pushExternalAudioRenderFrame: 输入外部音频数据渲染到本地
int pushExternalAudioRenderFrame (DingRtcAudioDataSample *_Nonnull data)
参数说明
参数
类型
描述
data
音频数据采样,详见DingRtcAudioDataSample
返回说明
- <0: 表示失败;
- 0: 表示成功;
- 返回值为DingRtcErrorCode时,需要在间隔投递数据时间长度后再次重试投递
重要为了保证语音连续性,sdk内部会有buffer缓存送进来的音频数据,以每次送10ms数据为例,如果返回DingRtcErrorCode::DingRtcErrAudioBufferFull时,说明内部缓冲区已满,建议等待20ms后再重新送当前数据帧;
-
enableCustomAudioCapture: 开启自定义音频采集,开始后,SDK内部不在操作音频采集设备
int enableCustomAudioCapture (BOOL enable)
参数说明
参数
类型
描述
enable
BOOL
是否开启
返回说明
- 0: 成功
- <0: 失败
重要使用自定义采集时, 不能在使用外部音频输入源setExternalAudioSource相关功能
-
sendCustomAudioCaptureFrame: 向SDK投送自己采集的音频数据
int sendCustomAudioCaptureFrame (DingRtcAudioDataSample *_Nonnull data)
参数说明
参数
类型
描述
data
音频帧,详见DingRtcAudioDataSample
返回说明
- 0: 成功
- <0: 失败
重要音频帧数据只支持16位PCM格式, 10ms帧长, 采样率支持48000/44100/32000/16000, 声道数支持单声道/双声道
-
enableCustomAudioRender: 开启自定义音频播放,开始后,SDK内部不在操作音频播放设备
int enableCustomAudioRender (BOOL enable)
参数说明
参数
类型
描述
enable
BOOL
是否开启
返回说明
- 0: 成功
- <0: 失败
重要使用自定义播放时, 不能在使用外部音频渲染源setExternalAudioRender相关功能
-
getCustomAudioRenderFrame: 获取可播放的音频数据
int getCustomAudioRenderFrame (DingRtcAudioDataSample *_Nonnull data)
参数说明
参数
类型
描述
data
音频帧,详见DingRtcAudioDataSample
返回说明
- 0: 成功
- <0: 失败
重要音频帧buffer需要使用者申请释放, 音频帧数据只支持16位PCM格式, 10ms帧长, 采样率支持48000/44100/32000/16000, 声道数支持单声道/双声道
-
createAudioMixing: 创建伴奏混音实例。
int createAudioMixing (NSInteger unqiueId,[filePath] NSString *_Nonnull filePath)
参数说明
参数
类型
描述
unqiueId
NSInteger
伴奏文件id,用户分配。
filePath
NSString *_Nonnull
伴奏文件路径。
返回说明
- 0:成功;
- 非0:失败。
-
destroyAudioMixing: 销毁伴奏混音实例。
int destroyAudioMixing (NSInteger unqiueId)
参数说明
参数
类型
描述
unqiueId
NSInteger
伴奏文件id。
返回说明
- 0:成功;
- 非0:失败。
-
startAudioMixing: 开始伴奏混音。
int startAudioMixing (NSInteger unqiueId,[config] DingRtcAudioMixingConfig *_Nonnull config)
参数说明
参数
类型
描述
unqiueId
NSInteger
伴奏文件id。
config
伴奏文件配置,参考DingRtcAudioMixingConfig。
返回说明
- 0:成功;
- 非0:失败。
重要可通过onAudioMixingStateChanged监听播放状态。
-
stopAudioMixing: 停止伴奏混音。
int stopAudioMixing (NSInteger unqiueId)
参数说明
参数
类型
描述
unqiueId
NSInteger
伴奏文件id。
返回说明
- 0:成功;
- 非0:失败。
-
pauseAudioMixing: 暂停伴奏混音。
int pauseAudioMixing (NSInteger unqiueId)
参数说明
参数
类型
描述
unqiueId
NSInteger
伴奏文件id。
返回说明
- 0:成功;
- 非0:失败。
-
resumeAudioMixing: 暂停后恢复伴奏混音。
int resumeAudioMixing (NSInteger unqiueId)
参数说明
参数
类型
描述
unqiueId
NSInteger
伴奏文件id。
返回说明
- 0:成功;
- 非0:失败。
-
getAudioMixingDuration: 获取伴奏时长。
int getAudioMixingDuration (NSInteger unqiueId)
参数说明
参数
类型
描述
unqiueId
NSInteger
伴奏文件id。
返回说明
伴奏时长,单位ms。返回值为1时,说明获取时长失败。
-
getAudioMixingCurrentPosition: 获取当前伴奏播放时长。
int getAudioMixingCurrentPosition (NSInteger unqiueId)
参数说明
参数
类型
描述
unqiueId
NSInteger
伴奏文件id。
返回说明
当前伴奏播放时长,单位ms。返回值为1时,说明获取时长失败。
-
setAudioMixingPosition: 设置伴奏播放位置。
int setAudioMixingPosition (NSInteger unqiueId,[position] NSInteger position)
参数说明
参数
类型
描述
unqiueId
NSInteger
伴奏文件id。
position
NSInteger
设置伴奏播放位置,单位ms。
返回说明
- 0:成功;
- 非0:失败。
-
setAudioMixingVolume: 设置伴奏音量。
int setAudioMixingVolume (NSInteger unqiueId,[volume] NSInteger volume)
参数说明
参数
类型
描述
unqiueId
NSInteger
伴奏文件id。
volume
NSInteger
伴奏音量,取值[0,100]。
返回说明
- 0:成功;
- 非0:失败。
-
getAudioMixingVolume: 获取伴奏音量。
int getAudioMixingVolume (NSInteger unqiueId)
参数说明
参数
类型
描述
unqiueId
NSInteger
伴奏文件id。
返回说明
伴奏音量, < 0 代表获取失败。
-
setAudioMixingPublishVolume: 设置伴奏推流音量。
int setAudioMixingPublishVolume (NSInteger unqiueId,[volume] NSInteger volume)
参数说明
参数
类型
描述
unqiueId
NSInteger
伴奏文件id。
volume
NSInteger
伴奏推流音量,取值[0,100]。
返回说明
- 0:成功;
- 非0:失败。
-
getAudioMixingPublishVolume: 获取伴奏推流音量。
int getAudioMixingPublishVolume (NSInteger unqiueId)
参数说明
参数
类型
描述
unqiueId
NSInteger
伴奏文件id。
返回说明
伴奏推流音量, < 0 代表获取失败。
-
setAudioMixingPlayoutVolume: 设置伴奏播放音量。
int setAudioMixingPlayoutVolume (NSInteger unqiueId,[volume] NSInteger volume)
参数说明
参数
类型
描述
unqiueId
NSInteger
伴奏文件id。
volume
NSInteger
伴奏播放音量,取值[0,100]。
返回说明
- 0:成功;
- 非0:失败。
-
getAudioMixingPlayoutVolume: 获取伴奏播放音量。
int getAudioMixingPlayoutVolume (NSInteger unqiueId)
参数说明
参数
类型
描述
unqiueId
NSInteger
伴奏文件id。
返回说明
伴奏播放音量, < 0 代表获取失败。
-
setExternalVideoSource: 设置外部视频源。
int setExternalVideoSource (BOOL enable,[track] DingRtcVideoTrack track)
-
pushExternalVideoFrame: 推送外部视频数据。
int pushExternalVideoFrame (DingRtcVideoFrame *_Nonnull frame,[track] DingRtcVideoTrack track)
-
joinAudioGroup: 加入音频分组。如果分组当前不存在,则自动创建一个。
int joinAudioGroup (NSString *_Nonnull groupId,[usrData] NSString *_Nullable usrData)
参数说明
参数
类型
描述
groupId
NSString *_Nonnull
指定加入的音频分组,不可以是大厅(audioGroupHallId)。
usrData
NSString *_Nullable
可以额外提供一个字符串,业务层自行解释。长度不超过64字节。
返回说明
- 如果返回0,结果将会通过onAudioGroupJoinResult通知app。
- 如果返回<0,则调用失败,不会有通知消息onAudioGroupJoinResult。
重要usrData暂时未支持。
-
leaveAudioGroup: 离开音频分组。
int leaveAudioGroup (NSString *_Nonnull groupId)
参数说明
参数
类型
描述
groupId
NSString *_Nonnull
要离开的音频分组,不可以是大厅(audioGroupHallId)。
返回说明
- 如果返回0,结果将会通过onAudioGroupLeaveResult通知app。
- 如果返回<0,则调用失败,不会有通知消息onAudioGroupLeaveResult。
重要如果离开了分组,那么没有权限再订阅该分组的音频,也没有权限向该分组mix音频流。
-
dismissAudioGroup: 解散音频分组,所有成员被迫离开该音频分组。
int dismissAudioGroup (NSString *_Nonnull groupId)
参数说明
参数
类型
描述
groupId
NSString *_Nonnull
要解散的音频分组,不可以是大厅(audioGroupHallId)。
返回说明
- 如果返回0,结果将会通过onAudioGroupDismissResult通知app。
- 如果返回<0,则调用失败,不会有通知消息onAudioGroupDismissResult。
-
mixAudioToGroup: 本地音频合并进分组音频或者大厅音频中。
int mixAudioToGroup (NSString *_Nonnull groupId,[mix] BOOL mix)
参数说明
参数
类型
描述
groupId
NSString *_Nonnull
指定的音频分组,可以是大厅(audioGroupHallId)。
mix
BOOL
true表示合并,false表示不合并。
返回说明
- 如果返回0,结果将会通过onAudioGroupMixResult通知app。
- 如果返回<0,则调用失败,不会有通知消息onAudioGroupMixResult。
重要前提条件:1,已经做了音频的publish; 2,权限要求:用户需要在目标分组或者大厅中。
-
switchSubscriptionToAudioGroup: 切换订阅的音频流到指定的分组或者大厅音频。
int switchSubscriptionToAudioGroup (NSString *groupId)
参数说明
参数
类型
描述
groupId
NSString *
指定的音频分组,可以是大厅(audioGroupHallId)。
返回说明
- 如果返回0,结果将会通过onAudioSubscribeStateChanged通知app。
- 如果返回<0,则调用失败,不会有通知消息onAudioSubscribeStateChanged。
重要业务层监听 onAudioSubscribeStateChanged 通知,如果uid为"",检查newState == DingRtcStatsSubscribed,再查询当前订阅成功的音频类型(通过getCurrentSubscribedAudio),可判断是否切换成功。切换过程会有多次 onAudioSubscribeStateChanged 通知。
-
getCurrentSubscribedAudio: 查询当前订阅的音频的类型,可能是大厅音频,也可能是某个分组的音频。
NSString *_Nullable getCurrentSubscribedAudio ()
返回说明
返回的是 groupId,如果 nil 或者 "",表示无订阅,如果是audioGroupHallId,表示大厅音频,否则,返回分组音频对应的分组ID。
-
sendMediaExtensionMsg: 发送媒体扩展信息
int sendMediaExtensionMsg (NSData *_Nonnull data,[repeatCount] int repeatCount)
- SDK提供了发送和接收媒体扩展信息的功能,接收端参考 onMediaExtensionMsgReceived,使用场景:
- 使用媒体扩展信息传递时间戳,计算端到端的网络延迟,或者跟自身其他业务做数据同步
- 使用媒体扩展信息传递位控制信息。目前可以传递8 Byte数据,即64位,每一位或几位可以表示控制信息,用于自身业务上的指令传输
参数说明
参数
类型
描述
data
NSData *_Nonnull
扩展信息内容,长度限制为最大8字节
repeatCount
int
重复次数,代表消息冗余度,用于防止网络丢包导致的消息丢失
返回说明
- 0: 成功
- <0: 失败
- ERR_INNER(-1): SDK内部错误,可能的情况为SDK未初始化或者SDK销毁后调用
重要使用媒体扩展信息时需要复用音视频数据通道,因此必须控制自定义消息的发送频率和消息数据长度,使用限制如下:
每秒最多发送30条消息
为了不影响媒体数据的传输质量,自定义消息体长度限制为8 Byte,可以用来传输时间戳,位控制信息等
sendMediaExtensionMsg函数中repeatCount参数为自定义消息冗余度,若大于1,则会发送多次,防止网络丢包导致的消息丢失,此时房间里的其他人也会收到多次相同的消息,需要去重
发送的自定义消息,在旁路直播时,房间里的订阅者也一样会收到
目前H5端不支持发送和接收媒体扩展信息
-
startPreview: 开启本地视频预览。
int startPreview ()
返回说明
- 0 :成功;
- < 0 :失败。
重要如果没有调用setLocalViewConfig设置显示的view,则无法预览。 可以在joinChannel之前就开启预览会自动打开摄像头。
-
stopPreview: 关闭本地视频预览。
int stopPreview ()
返回说明
- 0 :成功;
- < 0 :失败。
重要leaveChannel会自动停止本地预览;如果没有在推相机流,则会自动关闭摄像头。
-
getOnlineRemoteUsers: 获取远端在线用户列表。
NSArray< NSString * > *_Nullable getOnlineRemoteUsers ()
返回说明
当前频道内所有在线用户userid列表。
-
isUserOnline: 查询用户是否在线。
BOOL isUserOnline (NSString *_Nonnull uid)
参数说明
参数
类型
描述
uid
NSString *_Nonnull
用户ID,从Appserver分配的唯一标示符。不可为NULL。
返回说明
- YES,用户在线;
- NO,用户不在线。
重要根据特定的UserID,查询该用户是否在线。
-
getUserInfo: 查询远端用户状态。
NSDictionary *_Nullable getUserInfo (NSString *_Nonnull uid)
参数说明
参数
类型
描述
uid
NSString *_Nonnull
用户ID。从Appserver分配的唯一标示符。
返回说明
- dict App提供的容器,用于存放用户数据,dict类型为字典类型,通过{Key,Value}进行访问。
- dict[userID] != "" 成功。 - dict[userID] == @"" 失败。
重要通过 uid 查询,指定远端用户的状态信息,在参数dict中,以字典{key,value}的形式,返回用户的全部状态信息。
Key信息:
userID:远端用户的ID。
isOnline:远端用户是否在线。
displayName:远端用户的名称。
hasAudio:远端用户是否推送了音频流。
hasCamera:远端用户是否推送了相机流。
hasScreenSharing:远端用户是否推送了屏幕流。
requestAudio:本端是否订阅了此远端用户的音频流。
requestCamera:本端是否订阅了此远端用户的相机流。此状态,系在成功订阅该用户摄像头流前的状态。
requestScreenSharing:本端是否订阅了此远端用户的屏幕流。此状态,系在成功订阅该用户屏幕共享前的状态。
preferCameraType:如果网络带宽允许,优先订阅的相机流的大小规格,选择范围:FHD, HD, SD, LD。
subScribedAudio:本端是否拉到了此远端用户的音频流。
subScribedCameraType:本端拉到了此远端用户的相机流的大小规格,可能的值:FHD, HD, SD, LD。
subScribedScreenSharing:本端是否拉到了此远端用户的屏幕流。
hasCameraView:本端是否设置了此远端用户相机流的view。
hasScreenView:本端是否设置了此远端用户屏幕流的view。
isCameraMirror:本端是否设置了此远端用户的相机流为镜像。
isScreenMirror:本端是否设置了此远端用户的屏幕流为镜像。
-
getErrorDescription: 根据错误码,获取错误码描述。
NSString *_Nullable getErrorDescription (NSInteger errCode)
参数说明
参数
类型
描述
errCode
NSInteger
错误码,详见DingRtcErrorCode。
返回说明
错误码描述字符串。
重要在任何时刻都可以调用。
-
enableDelegateMainQueue: 是否分发回调到主线程。
int enableDelegateMainQueue (BOOL enabled)
参数说明
参数
类型
描述
enabled
BOOL
YES:回调分发至主线程队列。
NO:回调不分发至主线程队列。
返回说明
0表示Success;非0表示Failure。
重要回调默认分发至主线程队列(iOS Default:YES,Mac Default:NO)。
-
setDelegateQueue: 指定回调线程队列。
int setDelegateQueue (NSOperationQueue *_Nullable queue)
参数说明
参数
类型
描述
queue
NSOperationQueue *_Nullable
回调queue。
返回说明
0表示Success;非0表示Failure。
重要enableDelegateMainQueue为YES时,此接口设置无效,回调线程为主线程。
enableDelegateMainQueue为NO时,可通过此接口指定回调线程,若不设置,则使用SDK的默认子线程。
-
getCurrentConnectionStatus: 获取当前网络链接状态。
DingRtcConnectionStatus getCurrentConnectionStatus ()
返回说明
当前链接状态, 参考DingRtcConnectionStatus。
重要网络链接状态发生变化时,SDK会通过onConnectionStatusChanged回调通知。
入会前调用此接口,均返回状态DingRtcConnectionStatusDisconnected。
-
setParameters: 设置算法或者其他私有参数。
int setParameters (NSString *_Nonnull params)
参数说明
参数
类型
描述
params
NSString *_Nonnull
用于接收来自客户设置的参数,通过JSON配置SDK的特别功能。
返回说明
- 0:成功;
- 其他:失败。
-
I420RotateWithSrcY: 将I420格式的视频帧进行角度的旋转。
int I420RotateWithSrcY (const unsigned char *_Nonnull srcY,[srcStrideY] int srcStrideY,[srcU] const unsigned char *_Nonnull srcU,[srcStrideU] int srcStrideU,[srcV] const unsigned char *_Nonnull srcV,[srcStrideV] int srcStrideV,[dstY] unsigned char *_Nonnull dstY,[dstStrideY] int dstStrideY,[dstU] unsigned char *_Nonnull dstU,[dstStrideU] int dstStrideU,[dstV] unsigned char *_Nonnull dstV,[dstStrideV] int dstStrideV,[width] int width,[height] int height,[mode] int mode)
参数说明
参数
类型
描述
srcY
const unsigned char *_Nonnull
srcY源视频帧Y分量
srcStrideY
int
源视频帧Y分量的步长
srcU
const unsigned char *_Nonnull
srcU源视频帧U分量
srcStrideU
int
源视频帧U分量的步长
srcV
const unsigned char *_Nonnull
srcV源视频帧V分量
srcStrideV
int
源视频帧V分量的步长
dstY
unsigned char *_Nonnull
dstY目标视频帧Y分量
dstStrideY
int
目标视频帧Y分量的步长
dstU
unsigned char *_Nonnull
dstU目标视频帧U分量
dstStrideU
int
目标视频帧U分量的步长
dstV
unsigned char *_Nonnull
dstV目标视频帧V分量
dstStrideV
int
目标视频帧V分量的步长
width
int
视频帧原始宽度。
height
int
视频帧原始高度。
mode
int
视频帧的旋转角度,一般为0,90,180,270。
返回说明
- 0:成功
- < 0:失败。