本文介绍实时音视频Mac SDK接口详情。
目录
基础接口
API | 功能描述 |
获取一个AliRtcEngine实例。 | |
销毁引擎。 | |
带回调的销毁引擎。 | |
设置H5兼容模式。 | |
检查当前是否兼容H5。 | |
获取SDK版本号。 |
频道相关接口
API | 功能描述 |
设置频道模式。 | |
设置音频Profile。 | |
查询当前是否为纯音频模式。 | |
设置为纯音频模式还是音视频模式。 | |
加入频道。 | |
加入频道。 | |
加入频道。 | |
加入频道。 | |
离开频道。 | |
检查当前是否在频道中 | |
设置用户角色。 | |
获取用户角色。 | |
刷新鉴权信息。 | |
刷新鉴权信息 |
发布及订阅相关接口
API | 功能描述 |
设置是否发布音频流,默认会推送音频流。 | |
查询当前是否推音频流。 | |
设置是否默认接收音频流,默认会订阅所有远端音频流;此接口建议入会前调用。 | |
停止或恢复接收所有远端音频流。 | |
停止或恢复特定远端用户的音频流拉取。 | |
设置是否发布视频流。 | |
查询当前是否发布视频流。 | |
设置是否默认接收视频流,默认会订阅所有远端视频频流;此接口建议入会前调用。 | |
停止或恢复接收所有远端视频流。 | |
停止或恢复特定远端用户的媒体流;建议在音视频都存在且要控制时使用此接口。 | |
停止/恢复订阅远端用户的音视频流。 | |
停止或恢复跨频道特定远端用户的媒体流。 | |
订阅目标频道,所有用户的流。 | |
停止/恢复订阅远端用户的视频流。 | |
设置远端音频的音量。 |
音频设备管理相关接口
API | 功能描述 |
设置是否停止发布本地音频。 | |
设置是否停止播放远端音频流。 | |
停止或恢复远端所有的音频播放。 | |
开启音频采集。 | |
开启音频采集。 | |
关闭音频采集。 | |
开启音量检测功能。 | |
启用耳返。 | |
开始音频播放。 | |
停止音频播放。 | |
设置播放音量。 | |
设置采集音量。 | |
开始测试音频播放设备。 | |
停止测试音频播放设备。 | |
开始测试音频采集设备。 | |
停止测试音频采集设备。 |
音频变声与混响
API | 功能描述 |
设置变声音效模式。 | |
设置变调参数。 | |
设置混响音效模式。 | |
设置混响音效类型和具体参数。 |
自定义音频输入
API | 功能描述 |
增加外部音频流。 | |
输入外部音频流数据。 | |
设置推流音量。 | |
获取推流音量。 | |
设置外部音频流播放音量。 | |
获取外部音频流播放音量。 | |
删除外部推流。 |
音频伴奏
API | 功能描述 |
获取音频伴奏文件信息。 | |
开始播放伴奏文件。 | |
停止播放伴奏文件。 | |
设置伴奏音量。 | |
设置伴奏文件推流音量。 | |
获取伴奏文件推流音量。 | |
设置伴奏文件播放音量。 | |
获取伴奏文件播放音量。 | |
暂停伴奏播放。 | |
恢复伴奏播放。 | |
获取伴奏文件时长。 | |
获取当前伴奏播放位置。 | |
设置伴奏播放位置。 |
音效文件
API | 功能描述 |
预加载音效文件。 | |
删除预加载的音效文件。 | |
开始播放音效。 | |
停止播放音效。 | |
停止播放所有音效。 | |
暂停音效。 | |
暂停所有音效。 | |
恢复指定音效文件。 | |
恢复所有音效文件。 | |
设置音效推流混音音量。 | |
获取音效推流混音音量。 | |
设置所有音效推流混音音量。 | |
设置音效本地播放音量。 | |
获取音效本地播放音量。 | |
设置所有音效本地播音量。 |
录制音视频文件
API | 功能描述 |
录制音视频文件(aac、wav、mp4)。 | |
停止录制音视频文件。 |
视频设备管理相关接口
API | 功能描述 |
为本地预览设置渲染窗口以及绘制参数。 | |
设置摄像头采集偏好。 | |
禁用或重新启用本地视频采集。 | |
设置是否停止发布本地视频流。 | |
为远端的视频设置渲染窗口以及绘制参数。 | |
检查摄像头是否打开。 | |
设置视频编码属性。 | |
设置视频解码属性。 | |
开始本地预览。 | |
停止本地预览。 | |
设置预览和推流镜像能力。 | |
设置采集缩放时机,视频数据是采集的时候立即缩放还是编码时才进行缩放。 |
配置视频数据回调
API | 功能描述 |
注册视频数据回调。 | |
反注册视频数据回调。 | |
摄像头截图。 | |
注册视频数据输出callback。 | |
取消注册视频数据输出callback。 |
配置音频数据回调
API | 功能描述 |
设置音频回调参数。 | |
注册音频数据回调。 |
自定义视频输入
API | 功能描述 |
启用外部视频输入源。 | |
输入视频数据。 |
桌面共享接口
API | 功能描述 |
开启共享屏幕推流。 | |
开启共享屏幕推流。 | |
停止共享屏幕推流。 | |
设置共享音频流音量。 | |
查询是否设置推送屏幕分享。 | |
配置屏幕共享编码参数。 |
直播旁路接口
API | 功能描述 |
开启旁路直播。 | |
更新旁路直播相关参数。 | |
停止旁路直播。 | |
获取旁路直播状态。 |
网络质量探测接口
API | 功能描述 |
开始网络质量探测。 | |
停止网络质量探测。 |
SEI
API | 功能描述 |
推送SEI流。 | |
推送SEI流(扩展)。 |
其他接口
API | 功能描述 |
设置自定义参数。 | |
获取自定义参数。 | |
设置SDK日志文件保存路径。 | |
设置日志等级。 | |
设置设备方向。 | |
获取网络时间戳。 | |
发送datachannel消息。 |
回调事件
API | 功能描述 |
网络链接状态回调;客户需要关心此回调。 | |
本地设备异常回调;客户需要关心此回调。 | |
用户鉴权信息即将过期通知,收到后30秒鉴权过期;客户需要关心此回调。 | |
用户调用需要鉴权的接口,服务端返回信息过期。 | |
加入频道结果回调。 | |
加入频道结果回调。 | |
离开频道结果回调。 | |
远端用户离线通知。 | |
远端用户上线通知。 | |
远端推流信息通知。 | |
被服务器踢出/会议结束频道的消息。 | |
音频推流状态通知。 | |
音频拉流状态通知。 | |
远端用户静音通知。 | |
音频设备打断开始通知。 | |
音频设备打断结束通知。 | |
视频推流变更回调。 | |
相机流订阅情况变更回调。 | |
对端用户发送视频黑帧数据发送通知。 | |
对端用户关闭相机流采集发送通知。 | |
远端用户应用退到后台。 | |
远端用户应用返回前台。 | |
本地音效播放结束回调。 | |
订阅的音频音量,语音状态和uid。 | |
语音激励,监测到活跃用户回调。 | |
旁路推流状态改变回调。 | |
旁路任务状态改变回调。 | |
网络质量变化回调。 | |
网络质量探测回调。 | |
网络质量探测结果的回调。 | |
如果engine出现error,通过这个回调通知app 。 | |
音频首包发送回调。 | |
视频首帧接收回调。 | |
视频首包发送回调。 | |
音频首包接收回调。 | |
已解码远端音频首帧回调。 | |
远端用户的第一帧视频帧显示时触发这个消息。 | |
预览开始显示第一帧视频帧时触发这个消息。 | |
通话前音频采集检测的音量回调。 | |
本地伴奏播放状态回调。 | |
远端用户伴奏播放开始回调。 | |
远端用户伴奏播放结束回调。 | |
实时数据回调(2s触发一次)。 | |
本地视频统计信息(2s触发一次)。 | |
远端视频统计信息(2s触发一次)。 | |
本地音频统计信息(2s触发一次)。 | |
远端音频统计信息(2s触发一次)。 | |
收到媒体扩展信息回调。 | |
截图回调。 | |
本地音频采集设备状态回调。 | |
本地视频采集设备状态回调。 | |
可以开始发送data channel消息回调。 | |
数据通道消息回调。 | |
屏幕分享推流变更回调。 |
AliRtcAudioFrameDelegate
API | 功能描述 |
采集裸数据回调。 | |
采集3A后数据回调。 | |
推流数据回调。 | |
播放数据回调。 | |
远端拉流数据回调。 |
AliRtcEngineDestroyDelegate
API | 功能描述 |
释放引擎的回调,该回调执行后才是引擎释放。 |
AliRtcVideoFrameDelegate
API | 功能描述 |
采集视频帧回调。 | |
订阅的本地编码前视频数据回调。 | |
订阅的远端视频数据回调。 | |
视频数据输出格式。 | |
视频数据输出位置。 |
API详情
sharedInstance
创建AliRtcEngine实例。
+ (instancetype _Nonnull )sharedInstance:(id<AliRtcEngineDelegate>_Nullable)delegate extras:(NSString *_Nullable)extras;参数说明
名称 | 类型 | 描述 |
delegate | id<AliRtcEngineDelegate>_Nullable | 监听回调的代理。 |
extras | NSString *_Nullable | 通过JSON配置SDK的特别功能。无需特别功能,可填空字符:""。 |
同一时间只会存在一个主实例。
destroy[1/2]
释放SDK实例。
+ (void)destroy;在所有操作结束之后调用。
destroy[2/2]
带callback的释放引擎。
+ (void)destroy:(id<AliRtcEngineDestroyDelegate>_Nullable)delegate;参数说明
名称 | 类型 | 描述 |
delegate | id<AliRtcEngineDestroyDelegate> _Nullable | 释放后回调对象。 |
该接口为异步接口,需要等待onDestroyCompletion回调之后才能执行其他方法,为避免主线程阻塞,建议开发者放在子线程调用该方法,但需要注意的是如需在销毁后再次创建 {@link AliRtcEngine} 实例,请开发者务必保证 destroy 方法执行结束后再创建实例。
setH5CompatibleMode
设置是否兼容H5。
+ (void)setH5CompatibleMode:(BOOL)comp;参数说明
名称 | 类型 | 描述 |
comp | BOOL | YES表示兼容H5,NO表示不兼容H5。默认不兼容H5。 |
当前版本不支持在创建AliRtcEngine实例之后更改H5兼容模式,必须在创建实例之前就调用此方法。
getH5CompatibleMode
检查是否设置了H5兼容模式。
+ (BOOL)getH5CompatibleMode;返回说明
YES表示兼容H5,NO表示不兼容H5。
setChannelProfile
设置频道模式。
- (int)setChannelProfile:(AliRtcChannelProfile)profile;参数说明
名称 | 类型 | 描述 |
profile | AliRtcChannelProfile | 频道类型,默认为AliRtcCommunication。RTC场景通常设置为互动模式(AliRtcInteractivelive)。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
该接口只可以在加入频道之前调用,会议中不可以重新设置,离开频道后可以重新设置。
setAudioProfile
设置音频Profile。
- (int)setAudioProfile:(AliRtcAudioProfile)audio_profile audio_scene:(AliRtcAudioScenario)audio_scene;参数说明
名称 | 类型 | 描述 |
audio_profile | AliRtcAudioProfile | 音频采集或编码模式参数,建议使用高音质模式(AliRtcEngineHighQualityMode)。 说明 如果需要与 web 互通,需要设置采样率为 48k。
|
audio_scene | AliRtcAudioScenario | 音频场景模式参数,主要包含:
|
返回说明
0表示方法调用成功,其他表示方法调用失败。
isAudioOnly
检查当前是否纯音频模式。
- (BOOL)isAudioOnly;返回说明
YES表示纯音频模式,NO表示音视频模式。
setAudioOnlyMode
设置为纯音频模式还是音视频模式。
- (int)setAudioOnlyMode:(BOOL)audioOnly;参数说明
名称 | 类型 | 描述 |
audioOnly | BOOL | YES表示只有音频推流和拉流,NO表示音视频都支持,默认值为NO。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
joinChannel[1/4]
加入频道。
- (int)joinChannel:(NSString _Nonnull)token channelId:(NSString _Nullable)channelId userId:(NSString _Nullable)userId name:(NSString _Nullable)userName onResultWithUserId:(void(^_Nullable)(NSInteger errCode, NSString _Nonnull channel, NSString _Nonnull userId, NSInteger elapsed))onResult;加入频道成功后,如果中途需要加入其他频道,必须先调用leaveChannel离开当前频道,如果加入频道失败,需要重试时,无需先调用leaveChannel。
参数说明
参数 | 类型 | 描述 |
token | String | 单参数入会的鉴权信息。 |
channelId | String | 入会频道,必须和产生token的值一样。 |
userId | String | 入会的userid,必须和产生token的值一样。 |
userName | String | 用户的显示名称(不是用户ID)。 |
onResultWithUserId | void(^_Nullable)(NSInteger errCode, NSString _Nonnull channel, NSString _Nonnull userId, NSInteger elapsed) | 当此接口执行结束后调用此回调。 |
返回说明
0表示方法调用成功,非0表示方法调用失败。
该接口是异步接口,是否成功加入频道,需要通过onJoinChannelResult回调判断。
joinChannel[2/4]
加入频道。
- (int)joinChannel:(AliRtcAuthInfo _Nonnull)authInfo name:(NSString _Nullable)userName onResultWithUserId:(void(^_Nullable)(NSInteger errCode, NSString _Nonnull channel, NSString _Nonnull userId, NSInteger elapsed))onResult;加入频道成功后,如果中途需要加入其他频道,必须先调用leaveChannel离开当前频道,如果加入频道失败,需要重试时,无需先调用leaveChannel。
参数说明
名称 | 类型 | 描述 |
authInfo | AliRtcAuthInfo | 鉴权信息。 |
userName | String | 用户的显示名称(不是用户ID)。 |
onResultWithUserId | void(^_Nullable)(NSInteger errCode, NSString _Nonnull channel, NSString _Nonnull userId, NSInteger elapsed) | 当此接口执行结束后调用此回调。 |
joinChannel[3/4]
加入频道。
- (int)joinChannel:(AliRtcAuthInfo _Nonnull)authInfo name:(NSString _Nullable)userName onResult:(void(^_Nullable)(NSInteger errCode, NSString _Nonnull channel, NSInteger elapsed))onResult;加入频道成功后,如果中途需要加入其他频道,必须先调用leaveChannel离开当前频道,如果加入频道失败,需要重试时,无需先调用leaveChannel。
参数说明
名称 | 类型 | 描述 |
authInfo | AliRtcAuthInfo | 鉴权信息。 |
userName | String | 用户的显示名称(不是用户ID)。 |
onResult | void(^_Nullable)(NSInteger errCode,NSString _Nonnull channel,NSInteger elapsed) | 当此接口执行结束后调用此回调。 |
joinChannel[4/4]
加入频道。
- (int)joinChannel:(NSString _Nonnull)token channelParam:(AliRtcChannelParam _Nonnull)channelParam onResultWithUserId:(void(^_Nullable)(NSInteger errCode, NSString _Nonnull channel, NSString _Nonnull userId, NSInteger elapsed))onResult;加入频道成功后,如果中途需要加入其他频道,必须先调用leaveChannel离开当前频道,如果加入频道失败,需要重试时,无需先调用leaveChannel。
参数说明
名称 | 类型 | 描述 |
token | NSString | 认证信息,从App Server获取。 |
channelParam | AliRtcChannelParam | 入会参数 |
onResult | void(^_Nullable)(NSInteger errCode,NSString _Nonnull channel,NSInteger elapsed) | 当此接口执行结束后调用此回调。 |
leaveChannel
离开频道。
- (int)leaveChannel;返回说明
0表示方法调用成功,其他表示方法调用失败。
isInCall
检查当前是否在频道中。
- (BOOL)isInCall;返回说明
YES表示在频道中,NO表示不在频道中。
setClientRole
设置用户角色。
- (int)setClientRole:(AliRtcClientRole)role;参数说明
名称 | 类型 | 描述 |
role | AliRtcClientRole | 用户角色类型,默认值为AliRtcClientRoleLive(观众角色),非通信模式下角色类型才有效。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
getClientRole
获取用户角色。
- (AliRtcClientRole)getClientRole;返回说明
返回当前用户角色。
refreshAuthInfo
刷新鉴权信息。
- (int)refreshAuthInfo:(AliRtcAuthInfo _Nonnull)authInfo;参数说明
名称 | 类型 | 描述 |
authInfo | AliRtcAuthInfo _Nonnull | 鉴权信息。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
refreshAuthInfoWithToken
刷新鉴权信息。
- (int)refreshAuthInfoWithToken:(NSString _Nonnull)token;参数说明
名称 | 类型 | 描述 |
token | NSString _Nonnull | 单参数入会的鉴权信息。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
publishLocalAudioStream
设置是否允许发布音频流。
- (int)publishLocalAudioStream:(BOOL)enabled;参数说明
名称 | 类型 | 描述 |
enable | BOOL | YES表示发送本地音频流,NO表示停止推流,默认YES。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
isLocalAudioStreamPublished
查询当前是否允许推音频流。
- (BOOL)isLocalAudioStreamPublished;返回说明
YES表示允许推送,NO表示不允许推送。
setDefaultSubscribeAllRemoteAudioStreams
设置是否默认接收音频流。
- (int)setDefaultSubscribeAllRemoteAudioStreams:(BOOL)sub;参数说明
名称 | 类型 | 描述 |
sub | BOOL | YES表示接收用户的音频流,NO表示停止接收用户的音频流,默认值为YES。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
入会前、后均可调用。如果在加入频道后调用
setDefaultSubscribeAllRemoteAudioStreams:NO,会接收不到设置后加入频道的用户的音频流。停止接收音频流后,如果想恢复接收某个用户的音频流,请调用subscribeRemoteAudioStream uid sub:YES,对指定的用户进行订阅或取消订阅。
如果想恢复接收多个用户的音频流,则需要多次调用
AliRtcEngine接口。setDefaultSubscribeAllRemoteAudioStreams:YES只能恢复接收后面加入频道的用户的音频流。
subscribeAllRemoteAudioStreams
停止或恢复接收所有远端音频流。
- (int)subscribeAllRemoteAudioStreams:(BOOL)sub;参数说明
名称 | 类型 | 描述 |
sub | BOOL | YES表示接收所有用户的音频流,NO表示停止接收所有用户的音频流,默认值为YES。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
该接口作为订阅远端音频流的总开关,如果设置为NO,则不仅当前会议中所有远端音频流都会停止订阅,后续入会的新用户也将不再订阅(即使设置了AliRtcEngine接口:YES)。
subscribeRemoteAudioStream
停止或恢复特定远端用户的音频流拉取。
- (int)subscribeRemoteAudioStream:(NSString _Nonnull)uid sub:(BOOL)sub;参数说明
名称 | 类型 | 描述 |
uid | NSString _Nonnull | 远端用户ID。 |
sub | BOOL | YES表示接收指定用户的音频流,NO表示停止接收指定用户的音频流,默认值为YES。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
如果之前有调用过AliRtcEngine接口:NO对所有远端音频进行静音,在调用本API之前请确保您已调用AliRtcEngine接口:YES。AliRtcEngine接口是全局控制,AliRtcEngine接口是精细控制。
publishLocalVideoStream
设置是否允许发布相机流。
- (int)publishLocalVideoStream:(BOOL)enabled;参数说明
名称 | 类型 | 描述 |
enable | BOOL | YES表示发送视频,NO表示停止发送,默认YES。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
isLocalVideoStreamPublished
查询当前是否允许发布视频流。
- (BOOL)isLocalVideoStreamPublished;返回说明
YES表示发布相机流,NO表示不发布相机流。
setDefaultSubscribeAllRemoteVideoStreams
设置是否默认接收视频流。
- (int)setDefaultSubscribeAllRemoteVideoStreams:(BOOL)sub;参数说明
名称 | 类型 | 描述 |
sub | BOOL | YES表示接收用户的视频流,NO表示不接收用户的视频流,默认值为YES。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
入会前、后均可调用。如果在加入频道后调用
setDefaultSubscribeAllRemoteVideoStreams:NO,会接收不到设置后加入频道的用户的视频流。停止接收视频流后,如果想要恢复接收,请调用
AliRtcEngine接口:uid track:track sub:YES,并指定您想要接收的远端用户UID。如果想恢复接收多个用户的视频流,则需要多次调用
AliRtcEngine接口,setDefaultSubscribeAllRemoteVideoStreams:YES只能恢复接收后面加入频道的用户的视频流。
subscribeAllRemoteVideoStreams
停止或恢复接收所有远端视频流。
- (int)subscribeAllRemoteVideoStreams:(BOOL)sub;参数说明
名称 | 类型 | 描述 |
sub | BOOL | YES表示接收所有用户的视频流,NO表示停止允许接收所有用户的视频流,默认值为YES。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
该接口作为订阅远端视频流的总开关,如果设置为NO,则不仅当前会议中所有远端视频流都会停止订阅,后续入会的新用户也将不再订阅(即使设置了AliRtcEngine接口:YES)。
subscribeRemoteMediaStream [1/2]
停止或恢复特定远端用户的媒体流。
- (int)subscribeRemoteMediaStream:(NSString _Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack subVideo:(BOOL)subVideo subAudio:(BOOL)subAudio;参数说明
参数 | 类型 | 描述 |
uid | NSString | 远端用户ID。 |
videoTrack | AliRtcVideoTrack | 视频流类型。 |
subVideo | BOOL | 停止或恢复特定远端用户的视频流拉取,取值: |
subAudio | BOOL | 停止或恢复特定远端用户的音频流拉取,取值: |
返回说明
0表示方法调用成功,其他表示方法调用失败。
subscribeRemoteMediaStream [2/2]
停止或恢复特定远端用户的媒体流。
- (int)subscribeRemoteMediaStream:(NSString _Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack audioTrack:(AliRtcAudioTrack)audioTrack;参数说明
参数 | 类型 | 描述 |
uid | NSString | 远端用户ID。 |
videoTrack | AliRtcVideoTrack | 视频流类型。 |
audioTrack | AliRtcAudioTrack | 音频流类型。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
这个接口通过videoTrack、audioTrack通过一个接口把想要的状态告知SDK。
subscribeRemoteDestChannelStream
跨频道订阅指定用户的流。
- (int)subscribeRemoteDestChannelStream:(NSString _Nonnull)channelId uid:(NSString _Nonnull)uid track:(AliRtcVideoTrack)track subAudio:(BOOL)subAudio sub:(BOOL)sub;参数说明
参数 | 类型 | 描述 |
channelId | NSString | 远端频道ID。 |
uid | NSString | 远端用户ID。 |
track | AliRtcVideoTrack | 需要订阅的视频流。 |
subAudio | BOOL | 停止或恢复特定远端用户的音频流拉取,取值: |
sub | BOOL | 停止或恢复跨频道订阅指定用户的流。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
muteLocalMic
停止或恢复本地音频数据发送。
- (int)muteLocalMic:(BOOL)mute mode:(AliRtcMuteLocalAudioMode)mode;参数说明
名称 | 类型 | 描述 |
mute | BOOL | YES表示本地音频发送空帧,NO表示恢复正常,默认值为NO。 |
mode | AliRtcMuteLocalAudioMode | 静音模式,默认麦克风静音模式。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
mute只是发送音频数据为静音帧,采集和编码模块仍然在工作。
muteRemoteAudioPlaying
停止或恢复远端的音频播放。
- (int)muteRemoteAudioPlaying:(NSString _Nonnull)uid mute:(BOOL)mute;参数说明
名称 | 类型 | 描述 |
uid | NSString _Nonnull | 用户ID。 |
mute | BOOL | YES表示停止播放,NO表示恢复播放,默认值为NO。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
muteAllRemoteAudioPlaying
停止或恢复远端所有的音频播放。
- (int)muteAllRemoteAudioPlaying:(BOOL)mute;参数说明
名称 | 类型 | 描述 |
mute | BOOL | YES表示停止播放,NO表示恢复播放,默认值为NO。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
拉流和解码不受影响。支持AliRtcEngine接口之前和之后设置。
startAudioCapture [1/2]
开启音频采集。
- (void)startAudioCapture;返回说明
0表示方法调用成功,其他表示方法调用失败。
此接口可以控制提前打开音频采集,如果不设置,则SDK会在合适的时机在打开音频采集。
startAudioCapture [2/2]
开启音频采集。
- (void)startAudioCapture:(BOOL)keepAlive;参数说明
参数 | 类型 | 描述 |
keepAlive | BOOL | 离会后采集设备的状态,取值: |
返回说明
0表示方法调用成功,其他表示方法调用失败。
stopAudioCapture
此接口可以控制关闭音频采集,与startAudioCapture对应。
- (void)stopAudioCapture;返回说明
0表示方法调用成功,其他表示方法调用失败。
startRecord
启动本地音视频录制功能。
- (BOOL)startRecord:(AliRtcRecordType)recordType recordFormat:(AliRtcRecordFormat)recordFormat filePath:(NSString)filePath audioConfig:(AliRtcRecordAudioConfig)audioConfig videoConfig:(AliRtcRecordVideoConfig)videoConfig;参数说明
名称 | 类型 | 描述 |
recordType | AliRtcRecordType | 录制类型 |
recordFormat | AliRtcRecordFormat | 录制格式 |
filePath | NSString | 录制文件名和路径 |
audioConfig | AliRtcRecordAudioConfig | 音频配置 |
videoConfig | AliRtcRecordVideoConfig | 视频配置 |
返回说明
TRUE成功,其他失败。
如果录制视频文件,请在流推流成功后(onVideoPublishStateChanged)再调用该接口,该接口目前录制写到本地的是本地编码之后的视频流;如果录制音频流,录制的是本地音频和远端音频混音后的音频文件;
stopRecord
停止当前正在进行的录制操作。
- (void)stopRecord;返回说明
无
playAudioFileTest
用于测试播放指定路径的音频文件。
- (int)playAudioFileTest:(NSString _Nonnull)filePath;参数说明
名称 | 类型 | 描述 |
filePath | NSString _Nonnull | 播放文件路径 |
返回说明
0成功,其他失败;
建议在JoinChannel之前调用;
stopAudioFileTest
停止当前正在播放的音频文件。
- (int)stopAudioFileTest;返回说明
0成功,其他失败。
建议在JoinChannel之前调用。
enableAudioVolumeIndication
启用或禁用音量提示及说话人检测回调。
- (int)enableAudioVolumeIndication:(NSInteger)interval smooth:(NSInteger)smooth reportVad:(NSInteger)reportVad;参数说明
名称 | 类型 | 描述 |
interval | NSInteger | 时间间隔,单位为毫秒,最小值不得小于10ms,建议设置300~500ms,小于等于0表示不启用音量提示和说话人提示功能。 |
smooth | NSInteger | 平滑系数,取值范围:[0,9],数值越大平滑程度越高,反之越低,实时性越好,建议设置3。 |
reportVad | NSInteger | 说话人检测开关,取值:1:开启,通过回调及监听接口回调每一个说话人的状态。0:关闭。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
enableEarBack
启用或关闭耳返功能。
- (int)enableEarBack:(BOOL)enable;参数说明
名称 | 类型 | 描述 |
enable | BOOL | YES表示启用耳返,NO表示关闭耳返,默认值为NO。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
setEarBackVolume
设置耳返输出的音量大小。
- (int)setEarBackVolume:(NSInteger)volume;参数说明
名称 | 类型 | 描述 |
volume | NSInteger | 取值范围:[0,100],默认100。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
setAudioEffectVoiceChangerMode
设置音频变声效果模式。
- (int)setAudioEffectVoiceChangerMode:(AliRtcAudioEffectVoiceChangerMode)mode;参数说明
名称 | 类型 | 描述 |
mode | AliRtcAudioEffectVoiceChangerMode | 模式值,默认值为AliRtcSdk_AudioEffect_Voice_Changer_OFF。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
setAudioEffectPitchValue
- (int)setAudioEffectPitchValue:(double)value;参数说明
名称 | 类型 | 描述 |
value | double | 取值范围:[0.5,2.0],默认为1.0,表示音调不变。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
setAudioEffectReverbMode
设置音频混响效果模式。
- (int)setAudioEffectReverbMode:(AliRtcAudioEffectReverbMode)mode;参数说明
名称 | 类型 | 描述 |
mode | AliRtcAudioEffectReverbMode | 音效模式,默认值为AliRtcAudioEffectReverb_Off。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
setAudioEffectReverbParamType
设置混响音效的具体参数。
- (int)setAudioEffectReverbParamType:(AliRtcAudioEffectReverbParamType)type value:(float)value;参数说明
名称 | 类型 | 描述 |
type | AliRtcAudioEffectReverbParamType | 音效混响模式。 |
value | float | 具体参数值。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
addExternalAudioStream
注册一个外部音频输入流。
- (int)addExternalAudioStream:(AliRtcExternalAudioStreamConfig _Nonnull)config;参数说明
名称 | 类型 | 描述 |
config | AliRtcExternalAudioStreamConfig | 外部音频流配置。 |
返回说明
>0表示方法调用成功,返回说明为外部音频流ID,其他表示方法调用失败。
pushExternalAudioStream
- (int)pushExternalAudioStream:(int)streamId rawData:(AliRtcAudioFrame _Nonnull)audioFrame;参数说明
名称 | 类型 | 描述 |
streamId | int | 外部音频流Id。 |
audioFrame | AliRtcAudioFrame | 音频数据。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
setExternalAudioStream:publishVolume
设置指定外部音频流在推流中的音量。
- (int)setExternalAudioStream:(int)streamId publishVolume:(int)publishVolume;参数说明
名称 | 类型 | 描述 |
streamId | int | 外部音频流Id。 |
publishVolume | int | 推流音量。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
getExternalAudioStreamPublishVolume
获取指定外部音频流在推流中的音量。
- (int)getExternalAudioStreamPublishVolume:(int)streamId;参数说明
名称 | 类型 | 描述 |
streamId | int | 外部音频流Id。 |
返回说明
[0, 100]: 推流音量,< 0: 失败。
setExternalAudioStream:playoutVolume
设置指定外部音频流在本地播放时的音量。
- (int)setExternalAudioStream:(int)streamId playoutVolume:(int)playoutVolume;参数说明
名称 | 类型 | 描述 |
streamId | int | 外部音频流Id。 |
playoutVolume | int | 播放音量。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
getExternalAudioStreamPlayoutVolume
获取指定外部音频流在本地播放时的音量。
- (int)getExternalAudioStreamPlayoutVolume:(int)streamId;参数说明
名称 | 类型 | 描述 |
streamId | int | 外部音频流Id。 |
返回说明
[0, 100]: 播放音量,< 0: 失败。
preloadAudioEffectWithSoundId
将指定音效文件预加载到内存中。
- (int)preloadAudioEffectWithSoundId:(NSInteger)soundId filePath:(NSString _Nonnull)filePath;参数说明
名称 | 类型 | 描述 |
soundId | NSInteger | 用户给该音效文件分配的ID。 |
filePath | NSString _Nonnull | 音效文件路径。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
unloadAudioEffectWithSoundId
从内存中卸载指定ID的音效文件。
- (int)unloadAudioEffectWithSoundId:(NSInteger)soundId;参数说明
名称 | 类型 | 描述 |
soundId | NSInteger | 用户给该音效文件分配的ID。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
playAudioEffectWithSoundId
播放指定ID的音效文件。
- (int)playAudioEffectWithSoundId:(NSInteger)soundId filePath:(NSString _Nonnull)filePath cycles:(NSInteger)cycles publish:(BOOL)publish;参数说明
名称 | 类型 | 描述 |
soundId | NSInteger | 用户给该音效文件分配的ID。 |
filePath | NSString _Nonnull | 音效文件路径。 |
cycles | NSInteger | 循环次数(可以设置-1或者正整数)。 |
publish | BOOL | 是否发布。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
stopAudioEffectWithSoundId
停止播放指定ID的音效。
- (int)stopAudioEffectWithSoundId:(NSInteger)soundId;参数说明
名称 | 类型 | 描述 |
soundId | NSInteger | 用户给该音效文件分配的ID。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
stopAllAudioEffects
停止所有正在播放的音效。
- (int)stopAllAudioEffects;返回说明
0表示方法调用成功,其他表示方法调用失败。
pauseAudioEffectWithSoundId
暂停指定ID的音效播放。
- (int)pauseAudioEffectWithSoundId:(NSInteger)soundId;参数说明
名称 | 类型 | 描述 |
soundId | NSInteger | 用户给该音效文件分配的ID。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
pauseAllAudioEffects
暂停所有正在播放的音效。
- (int)pauseAllAudioEffects;返回说明
0表示方法调用成功,其他表示方法调用失败。
resumeAudioEffectWithSoundId
恢复指定ID的音效播放。
- (int)resumeAudioEffectWithSoundId:(NSInteger)soundId;参数说明
名称 | 类型 | 描述 |
soundId | NSInteger | 用户给该音效文件分配的ID。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
resumeAllAudioEffects
恢复所有已暂停的音效播放。
- (int)resumeAllAudioEffects;返回说明
0表示方法调用成功,其他表示方法调用失败。
setAudioEffectPublishVolumeWithSoundId
设置指定音效在推流中的混音音量。
- (int)setAudioEffectPublishVolumeWithSoundId:(NSInteger)soundId volume:(NSInteger)volume;参数说明
名称 | 类型 | 描述 |
soundId | NSInteger | 用户给该音效文件分配的ID。 |
volume | NSInteger | 混音音量,取值范围:[0,100],默认值为50。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
getAudioEffectPublishVolumeWithSoundId
获取指定音效在推流中的混音音量。
- (int)getAudioEffectPublishVolumeWithSoundId:(NSInteger)soundId;参数说明
名称 | 类型 | 描述 |
soundId | NSInteger | 用户给该音效文件分配的ID。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
html
setAllAudioEffectsPublishVolume
设置所有音效本地播放音量。
- (int)setAllAudioEffectsPublishVolume:(NSInteger)volume;参数说明
名称 | 类型 | 描述 |
volume | NSInteger | 混音音量,取值范围:[0,100],默认值为50。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
setAudioEffectPlayoutVolumeWithSoundId
设置音效本地播放音量。
- (int)setAudioEffectPlayoutVolumeWithSoundId:(NSInteger)soundId volume:(NSInteger)volume;参数说明
名称 | 类型 | 描述 |
soundId | NSInteger | 用户给该音效文件分配的ID。 |
volume | NSInteger | 混音音量,取值范围:[0,100],默认值为50。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
getAudioEffectPlayoutVolumeWithSoundId
获取音效本地播放音量。
- (int)getAudioEffectPlayoutVolumeWithSoundId:(NSInteger)soundId;参数说明
名称 | 类型 | 描述 |
soundId | NSInteger | 用户给该音效文件分配的ID。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
setAllAudioEffectsPlayoutVolume
设置所有音效推流音量。
- (int)setAllAudioEffectsPlayoutVolume:(NSInteger)volume;参数说明
名称 | 类型 | 描述 |
volume | NSInteger | 混音音量,取值范围:[0,100],默认值为50。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
setLocalViewConfig
为本地预览设置渲染窗口以及绘制参数。
- (int)setLocalViewConfig:(AliVideoCanvas _Nullable)viewConfig forTrack:(AliRtcVideoTrack)track;参数说明
名称 | 类型 | 描述 |
viewConfig | AliVideoCanvas _Nullable | 渲染参数,包含渲染窗口以及渲染方式。 |
track | AliRtcVideoTrack | 视频Track的类型。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
支持AliRtcEngine接口之前和之后切换窗口。如果canvas或者AliVideoCanvas::view为nil,则停止渲染。如果在播放过程中需要重新设置render mode,请保持canvas中其他成员变量不变,仅修改renderMode。如果在播放过程中需要重新设置mirror mode,请保持canvas中其他成员变量不变,仅修改mirrorMode。
setCameraCapturerConfiguration
设置摄像头采集偏好。
- (int)setCameraCapturerConfiguration:(AliRtcCameraCapturerConfiguration _Nonnull)config;参数说明
名称 | 类型 | 描述 |
config | AliRtcCameraCapturerConfiguration _Nonnull | 摄像头采集偏好,默认值: |
返回说明
0表示方法调用成功,其他表示方法调用失败。
enableLocalVideo
禁用或重新启用本地视频采集。
- (int)enableLocalVideo:(BOOL)enable;参数说明
名称 | 类型 | 描述 |
enable | BOOL | YES表示恢复正常,NO表示停止视频采集,默认YES。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
muteLocalCamera
停止或恢复本地视频数据发送。
- (int)muteLocalCamera:(BOOL)mute forTrack:(AliRtcVideoTrack)track;此接口只是控制指定视频流上是否发送黑帧,本地预览停留在最后一帧,采集和数据发送不会停止,如果需要关闭采集请使用AliRtcEngine接口,如果需要中止视频数据发送请使用AliRtcEngine接口。
参数说明
名称 | 类型 | 描述 |
mute | BOOL | YES表示视频数据发送黑帧,NO表示恢复正常,默认值为NO。 |
track | AliRtcVideoTrack | 需要改变发布状态的视频Track类型。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
setRemoteViewConfig
为远端的视频设置渲染窗口以及绘制参数。
- (int)setRemoteViewConfig:(AliVideoCanvas _Nullable)canvas uid:(NSString _Nonnull)uid forTrack:(AliRtcVideoTrack)track;支持AliRtcEngine接口之前和之后切换窗口。如果canvas为nil或者view为nil,则停止渲染相应的流。如果在播放过程中需要重新设置render mode,请保持canvas中其他成员变量不变,仅修改renderMode。如果在播放过程中需要重新设置mirror mode,请保持canvas中其他成员变量不变,仅修改mirrorMode。
参数说明
名称 | 类型 | 描述 |
canvas | AliVideoCanvas _Nullable | 渲染参数,包含渲染窗口以及渲染方式。 |
uid | NSString _Nonnull | 用户ID。 |
track | AliRtcVideoTrack | 需要设置的视频Track类型。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
isCameraOn
检查摄像头是否打开。
- (BOOL)isCameraOn;返回说明
YES表示摄像头已打开,NO表示摄像头没有打开。
setVideoEncoderConfiguration
设置视频编码属性。
- (void)setVideoEncoderConfiguration:(AliRtcVideoEncoderConfiguration _Nonnull)config;参数说明
名称 | 类型 | 描述 |
config | AliRtcVideoEncoderConfiguration _Nonnull | 预定义的编码属性,默认值: |
setVideoDecoderConfiguration
设置视频解码属性
- (void)setVideoDecoderConfiguration:(AliRtcVideoDecoderConfiguration _Nonnull)config;参数说明
名称 | 类型 | 描述 |
config | AliRtcVideoDecoderConfiguration _Nonnull | 预定义的解码属性,默认值: |
startPreview
开始本地预览(会自动打开摄像头)。
- (int)startPreview;如果没有设置view,则无法预览。可以在AliRtcEngine接口之前就开启预览。
返回说明
0表示方法调用成功,其他表示方法调用失败。
stopPreview
停止本地预览。
- (int)stopPreview;leaveChannel会自动停止本地预览,且会自动关闭摄像头(如果正在推camera流,则不会关闭摄像头)。
返回说明
0表示方法调用成功,其他表示方法调用失败。
setExternalVideoSource
启用外部视频输入源。
- (int)setExternalVideoSource:(BOOL)enable sourceType:(AliRtcVideoSource)type renderMode:(AliRtcRenderMode)renderMode;参数说明
名称 | 类型 | 描述 |
enable | BOOL | YES表示开启,NO表示关闭。 |
type | AliRtcVideoSource | 流类型。 |
renderMode | AliRtcRenderMode | 渲染模式。 |
pushExternalVideoFrame
输入视频数据。
- (int)pushExternalVideoFrame:(AliRtcVideoDataSample _Nonnull)frame sourceType:(AliRtcVideoSource)type;参数说明
名称 | 类型 | 描述 |
frame | AliRtcVideoDataSample _Nonnull | 帧数据。 |
type | AliRtcVideoSource | 流类型。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
startScreenShareWithDesktopId
开始共享指定的桌面ID对应的屏幕流。
- (int)startScreenShareWithDesktopId:(int)desktopId config:(AliRtcScreenShareConfig * _Nonnull)config;参数说明
名称 | 类型 | 描述 |
desktopId | int | 桌面ID。 |
config | AliRtcScreenShareConfig | 共享桌面的配置。 |
返回值
0:成功
其他:失败
startScreenShareWithWindowId
根据用户指定的窗口ID,将其作为视频源进行视频流的共享与推送。
- (int)startScreenShareWithWindowId:(int)windowId config:(AliRtcScreenShareConfig * _Nonnull)config;参数说明
名称 | 类型 | 描述 |
windowId | int | 窗口ID。 |
config | AliRtcScreenShareConfig | 屏幕共享配置。 |
返回值
0:成功
其他:失败
StopScreenShare
停止屏幕共享。
- (int)stopScreenShare;参数说明
无
返回值
0:成功
其他:失败
updateScreenShareConfig
更新屏幕共享配置
- (int)updateScreenShareConfig:(AliRtcScreenShareConfig * _Nonnull)config;参数说明
名称 | 类型 | 描述 |
config | AliRtcScreenShareConfig | 屏幕共享配置。 |
返回值
0:成功;
其他:失败;
isScreenSharePublished
屏幕共享是否推流
- (BOOL)isScreenSharePublished;参数说明
无
返回值
TRUE:在屏幕共享中;
FALSE:不在屏幕共享中;
startPublishLiveStreamWithURL
开启旁路直播。
- (int)startPublishLiveStreamWithURL:(NSString _Nonnull)streamURL liveTranscoding:(AliRtcLiveTranscodingParam _Nonnull)trancoding;参数说明
名称 | 类型 | 描述 |
streamURL | NSString _Nonnull | 推流地址。 |
trancoding | AliRtcLiveTranscodingParam _Nonnull | 推流所需参数。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
updatePublishLiveStreamWithURL
更新旁路直播相关参数。
- (int)updatePublishLiveStreamWithURL:(NSString _Nonnull)streamURL liveTranscoding:(AliRtcLiveTranscodingParam _Nonnull)trancoding;参数说明
名称 | 类型 | 描述 |
streamURL | NSString _Nonnull | 推流地址。 |
trancoding | AliRtcLiveTranscodingParam _Nonnull | 推流所需参数。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
stopPublishLiveStreamWithURL
停止旁路直播。
- (int)subscribeRemoteDestChannelAllStream:(NSString _Nonnull)channelId track:(AliRtcVideoTrack)track subAudio:(BOOL)subAudio sub:(BOOL)sub;参数说明
名称 | 类型 | 描述 |
streamURL | NSString _Nonnull | 推流地址。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
GetPublishLiveStreamStateWithURL
获取旁路直播状态。
- (AliRtcLiveTranscodingState)GetPublishLiveStreamStateWithURL:(NSString _Nonnull)streamURL;参数说明
名称 | 类型 | 描述 |
streamURL | NSString _Nonnull | 推流地址。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
startLastmileDetect
开启网络质量探测。
- (int)startLastmileDetect:(AliRtcNetworkQualityProbeConfig _Nonnull)config;参数说明
名称 | 类型 | 描述 |
config | AliRtcNetworkQualityProbeConfig _Nonnull | 探测配置的参数。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
stopLastmileDetect
停止网络质量探测。
- (int)stopLastmileDetect;返回说明
0表示方法调用成功,其他表示方法调用失败。
setParameter
设置自定义参数。
- (int)setParameter:(NSString _Nonnull)param;参数说明
名称 | 类型 | 描述 |
param | NSString _Nonnull | 自定义参数。 |
getParameter
获取自定义参数。
- (NSString _Nonnull)getParameter:(NSString _Nonnull)param;参数说明
名称 | 类型 | 描述 |
param | NSString _Nonnull | 自定义参数。 |
enableAudioFrameObserver
设置音频回调参数。
- (int)enableAudioFrameObserver:(bool)enable audioSource: (AliRtcAudioSource)audioSource config:(AliRtcAudioFrameObserverConfig_Nullable)config;参数说明
名称 | 类型 | 描述 |
enable | bool | 是否允许数据回调。 |
audioSource | AliRtcAudioSource | 回调数据源类型。 |
config | AliRtcAudioFrameObserverConfig _Nullable | 回调参数设置。 |
registerAudioFrameObserver
注册音频数据输出。
- (int)registerAudioFrameObserver:(id<AliRtcAudioFrameDelegate> _Nullable)observer;参数说明
名称 | 类型 | 描述 |
observer | id<AliRtcAudioFrameDelegate> _Nullable | 音频数据回调。 |
registerVideoSampleObserver
注册视频数据输出。
- (void)registerVideoSampleObserver;unRegisterVideoSampleObserver
取消注册视频数据输出。
- (void)unregisterVideoSampleObserver;setLogDirPath
设置SDK日志文件保存路径。
+ (int)setLogDirPath:(NSString _Nullable)logDirPath;参数说明
名称 | 类型 | 描述 |
logDirPath | NSString _Nullable | 日志文件保存绝对路径。iOS端日志默认存储路径为Library/Caches/Ali_RTC_Log。Mac端日志默认存储路径为/Users/xxx/Documents(文稿)/Ali_RTC_Log。 |
请在调用所有SDK接口前调用此接口,避免日志出现丢失,同时App必须保证指定的目录已存在且可写入。
setLogLevel
设置日志等级。
- (void)setLogLevel:(AliRtcLogLevel)logLevel;参数说明
名称 | 类型 | 描述 |
logLevel | AliRtcLogLevel | Log级别,默认值为AliRtcLogLevelInfo。 |
setVideoMirrorMode
设置视频镜像模式。
- (int)setVideoMirrorMode:(AliRtcVideoPipelineMirrorMode)mirrorMode;参数说明
名称 | 类型 | 描述 |
mirrorMode | AliRtcVideoPipelineMirrorMode | 镜像类型。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
此接口在入会前和入会后均可以动态设置,SDK内部会记录状态,并在可以操作预览及编码的时候对视频进行操作;使用此接口的优先级会高于setLocalViewConfig&setVideoEncoderConfig;此接口与setLocalViewConfig&setVideoEncoderConfig里面的mirror重合,使用时只要使用其中一个即可。
setCapturePipelineScaleMode
设置视频链路缩放模式。
- (void)setCapturePipelineScaleMode:(AliRtcCapturePipelineScaleMode)mode;参数说明
名称 | 类型 | 描述 |
mode | AliRtcCapturePipelineScaleMode | 缩放类型。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
控制采集缩放时机的模式,默认是采集的时候立即缩放,该API必须在打开摄像头之前设置,startPreview/joinChannel之前。
getSdkVersion
获取SDK版本号。
+ (NSString _Nonnull)getSdkVersion;返回说明
当前的SDK版本号,格式为字符串,例:"2.5.0.x";该函数为静态方法,可以任意时候获取版本号。
setScreenShareEncoderConfiguration
设置屏幕共享编码器设置。
- (void)setScreenShareEncoderConfiguration:(AliRtcScreenShareEncoderConfiguration _Nonnull)config;参数说明
名称 | 类型 | 描述 |
config | AliRtcScreenShareEncoderConfiguration _Nonnull | 屏幕共享视频编码参数,如分辨率、帧率、码率、视频方向等 所有设置的参数都有相应的范围限制,如果设置的参数不在有效范围内。 |
该方法用于设置屏幕流视频编码属性对应的视频参数,如分辨率、帧率、码率、视频方向等 所有设置的参数都有相应的范围限制,如果设置的参数不在有效范围内,SDK会自动调节,该方法在入会前和入会后都可以调用,如果每次入会只需要设置一次屏幕流视频编码属性,建议在入会前调用。
setRemoteAudioVolume
设置远端音频的音量。
- (int)setRemoteAudioVolume:(NSString _Nonnull)uid volume:(NSInteger)volume;参数说明
名称 | 类型 | 描述 |
uid | NSString _Nonnull | 用户ID,从App server分配的唯一标示符。 |
volume | NSInteger | 播放音量,取值范围[0,100] 0:静音;100:原始音量。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
uid必须在该用户入会后设置,若该用户未入会,设置失败。
subscribeRemoteVideoStream
停止/恢复订阅远端用户的视频流。
- (int)subscribeRemoteVideoStream:(NSString _Nonnull)uid track:(AliRtcVideoTrack)track sub:(BOOL)sub;参数说明
名称 | 类型 | 描述 |
uid | NSString _Nonnull | 用户ID,从App server分配的唯一标示符。 |
track | AliRtcVideoTrack | 视频流类型。 |
sub | BOOL | 是否订阅。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
如果之前有调用过 subscribeAllRemoteVideoStreams,停止订阅所有远端视频,则此接口调用无效;subscribeAllRemoteVideoStreams是全局控制,SubscribeRemoteVideoStream 是单独控制。
subscribeRemoteDestChannelStream
订阅目标频道,指定用户的流。
- (int)subscribeRemoteDestChannelStream:(NSString _Nonnull)channelId uid:(NSString _Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack audioTrack:(AliRtcAudioTrack)audioTrack sub:(BOOL)sub;参数说明
名称 | 类型 | 描述 |
channelId | NSString _Nonnull | 目标频道。 |
uid | NSString _Nonnull | 用户ID,从App server分配的唯一标示符。 |
videoTrack | AliRtcVideoTrack | 视频流类型。 |
audioTrack | AliRtcAudioTrack | 音频流类型。 |
sub | BOOL | 是否订阅远端频道用户的流。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
subscribeRemoteDestChannelAllStream
订阅目标频道,所有用户的流。
- (int)subscribeRemoteDestChannelAllStream:(NSString _Nonnull)channelId track:(AliRtcVideoTrack)track subAudio:(BOOL)subAudio sub:(BOOL)sub;参数说明
名称 | 类型 | 描述 |
channelId | NSString _Nonnull | 目标频道。 |
track | AliRtcVideoTrack | 视频流类型。 |
subAudio | BOOL | 是否订阅音频流。 |
sub | BOOL | 是否订阅远端频道用户的视频流。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
setRecordingVolume
设置录音音量。
- (int)resumeAudioAccompany;参数说明
名称 | 类型 | 描述 |
volume | NSInteger | 值域:[0..400] [0..100]是原始音量[100..400]是音量放大。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
setPlayoutVolume
设置播放音量。
- (int)getAudioAccompanyDuration;参数说明
名称 | 类型 | 描述 |
volume | NSInteger | 值域:[0..400] 其中 [0..100]是原始音量范围[100..400]是音量放大。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
startAudioCaptureTest
通话前,开启音频采集设备检测。
- (int)getAudioAccompanyCurrentPosition;只能在joinChannel之前调用,joinChannel之后调用会失败。
stopAudioCaptureTest
停止通话前音频采集设备检测。
- (int)setAudioAccompanyPosition:(int)pos;只能在joinChannel之前调用,之后调用会失败。
getAudioFileInfo
获取音频文件信息。
- (int)getAudioFileInfo:(NSString *_Nonnull)filePath;参数说明
名称 | 类型 | 描述 |
filePath | NSString * | 文件路径。 |
异步接口,可通过 {@link onAudioFileInfo:errorCode:} 获取音频文件信息。
startAudioAccompanyWithFile
开始伴奏混音。
- (int)startAudioAccompanyWithFile:(NSString *_Nonnull)filePath config:(AliRtcAudioAccompanyConfig *_Nonnull)config;参数说明
名称 | 类型 | 描述 |
filePath | NSString * | 文件路径。 |
config | AliRtcAudioAccompanyConfig * | 伴奏的配置。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
异步接口,可通过 {@link onAudioAccompanyStateChanged:errorCode:} 监听播放器状态。
stopAudioAccompany
停止伴奏混音。
- (int)stopAudioAccompany;返回说明
0表示方法调用成功,其他表示方法调用失败。
setAudioAccompanyVolume
设置伴奏音量。
- (int)setAudioAccompanyVolume:(NSInteger)volume;参数说明
名称 | 类型 | 描述 |
volume | NSInteger | volume 伴奏音量,取值范围[0,100]。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
同时设置伴奏本地播放音量与伴奏推流音量。
setAudioAccompanyPublishVolume
设置伴奏推流音量。
- (int)setAudioAccompanyPublishVolume:(NSInteger)volume;参数说明
名称 | 类型 | 描述 |
volume | NSInteger | volume 伴奏音量,取值范围[0,100]。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
设置的推流出去的音量。
getAudioAccompanyPublishVolume
获取伴奏推流音量。
- (int)getAudioAccompanyPublishVolume;返回说明
[0, 100]表示成功,其他表示失败。
setAudioAccompanyPlayoutVolume
设置伴奏本地播放音量。
- (int)setAudioAccompanyPlayoutVolume:(NSInteger)volume;参数说明
名称 | 类型 | 描述 |
volume | NSInteger | volume 伴奏音量,取值范围[0,100]。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
getAudioAccompanyPlayoutVolume
获取伴奏本地播放音量。
- (int)getAudioAccompanyPlayoutVolume;返回说明
[0, 100]: 成功,其他失败。
pauseAudioAccompany
暂停伴奏混音。
- (int)pauseAudioAccompany;返回说明
0表示方法调用成功,其他表示方法调用失败。
resumeAudioAccompany
继续伴奏混音。
- (int)resumeAudioAccompany;返回说明
0表示方法调用成功,其他表示方法调用失败。
getAudioAccompanyDuration
获取伴奏文件时长, 单位为毫秒。
- (int)getAudioAccompanyDuration;返回说明
>=0获取伴奏文件时长, 单位为毫秒;<0失败。
getAudioAccompanyCurrentPosition
获取伴奏文件播放进度,单位为毫秒。
- (int)getAudioAccompanyCurrentPosition;返回说明
>=0: 伴奏文件播放进度;<0失败。
setAudioAccompanyPosition
设置伴奏文件的播放位置。
- (int)setAudioAccompanyPosition:(int)pos;参数说明
名称 | 类型 | 描述 |
pos | int | pos 进度条位置,单位为毫秒。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
setEarBackVolume
设置耳返音量。
- (int)setEarBackVolume:(NSInteger)volume;参数说明
名称 | 类型 | 描述 |
volume | NSInteger | volume 音量大小,范围是:[0 ~ 100],默认值为100。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
snapshotVideo
视频截图功能。
- (int)snapshotVideo:(NSString*_Nullable)userId type:(AliRtcVideoTrack)type;参数说明
名称 | 类型 | 描述 |
userId | NSString * | 用户ID,userId 为nil或者为""代表本地用户。 |
type | AliRtcVideoTrack | 视频流类型,只支持 {@link AliRtcVideoTrack::AliRtcVideoTrackCamera} 和 {@link AliRtcVideoTrack::AliRtcVideoTrackScreen}。 |
返回说明
0表示方法调用成功,其他表示方法调用失败。
sendMediaExtensionMsg
发送SEI信息
- (int)sendMediaExtensionMsg:(NSData *_Nonnull)data repeatCount:(int)repeatCount delay:(int)delay isKeyFrame:(bool)isKeyFrame;参数说明
名称 | 类型 | 描述 |
data | NSData * | 扩展信息内容, 长度限制为最大4K 字节 |
repeatCount | int | 重复次数,代表消息冗余度,用于防止网络丢包导致的消息丢失-1表示无限重发,除非再一次调用sendMediaExtensionMs |
delay | int | 延迟多少毫秒发送 用来延迟多少毫秒之后再发送SEI,因SEI是附在编码之后的h264/h265流,所以实际的延迟会比设置的延迟略大 |
isKeyFrame | bool | 是否只给关键帧加SEI 设置为true,则只给关键帧加SEI信息 |
返回说明
0成功,其他失败;
使用媒体扩展信息时需要复用音视频数据通道,因此必须控制自定义消息的发送频率和消息数据长度,使用限制如下:
每秒最多发送profile设置的fps条消息;
为了不影响媒体数据的传输质量,自定义消息体长度限制为4K Bytes,可以用来传输少量数据;
sendMediaExtensionMsg函数中repeatCount参数为自定义消息冗余度,若大于1,则会发送多次,防止网络丢包导致的消息丢失,此时房间里的其他人也会收到多次相同的消息,需要去重;
发送的自定义消息,在旁路直播时,房间里的订阅者也一样会收到,设置为-1为永久发送data数据,除非重新设置sendMediaExtensionMsg;
目前H5端支持SEI情况如下:
浏览器:
Chrome/Edge 86+
Safari 15.4+ Firefox 117+
ARTC SDK 版本: 6.12.0+同一时刻只有一个 sendMediaExtensionMsg 会被发送,意味着调用sendMediaExtensionMsg会覆盖上一次调用的sendMediaExtensionMsg,如果上次的调用没有发送或者没有发送完成;
sendMediaExtensionMsgEx
发送媒体扩展信息,底层使用SEI实现
- (int)sendMediaExtensionMsgEx:(NSData *_Nonnull)data repeatCount:(int)repeatCount delay:(int)delay isKeyFrame:(bool)isKeyFrame payloadType:(int)payloadType;参数说明
名称 | 类型 | 描述 |
data | NSData * | 扩展信息内容, 长度限制为最大4K 字节 |
repeatCount | int | 重复次数,代表消息冗余度,用于防止网络丢包导致的消息丢失-1表示无限重发,除非再一次调用sendMediaExtensionMs |
delay | int | 延迟多少毫秒发送 用来延迟多少毫秒之后再发送SEI,因SEI是附在编码之后的h264/h265流,所以实际的延迟会比设置的延迟略大 |
isKeyFrame | bool | 是否只给关键帧加SEI 设置为true,则只给关键帧加SEI信息 |
payloadType | int | 类型,带UUID的请用5,范围是[5,100..254] |
返回说明
0成功,其他失败
使用媒体扩展信息时需要复用音视频数据通道,因此必须控制自定义消息的发送频率和消息数据长度,使用限制如下:
每秒最多发送profile设置的fps条消息;
为了不影响媒体数据的传输质量,自定义消息体长度限制为4K Bytes,可以用来传输少量数据;
sendMediaExtensionMsg函数中repeatCount参数为自定义消息冗余度,若大于1,则会发送多次,防止网络丢包导致的消息丢失,此时房间里的其他人也会收到多次相同的消息,需要去重;
发送的自定义消息,在旁路直播时,房间里的订阅者也一样会收到,设置为-1为永久发送data数据,除非重新设置sendMediaExtensionMsg;
目前H5端支持SEI情况如下:
浏览器:
Chrome/Edge 86+
Safari 15.4+ Firefox 117+
ARTC SDK 版本: 6.12.0+同一时刻只有一个 sendMediaExtensionMsg 会被发送,意味着调用sendMediaExtensionMsg会覆盖上一次调用的sendMediaExtensionMsg,如果上次的调用没有发送或者没有发送完成;
startAudioPlayer
开启音频播放
- (void)startAudioPlayer;此接口可以控制提前打开音频播放,如果不设置,则SDK会在订阅到音频流后自动打开音频播放;
stopAudioPlayer
停止音频播放
- (void)stopAudioPlayer;此接口可以控制关闭音频播放;
removeExternalAudioStream
删除外部音频流
- (int)removeExternalAudioStream:(int)streamId;参数说明
名称 | 类型 | 描述 |
streamId | int | 外部音频流Id |
返回说明
0成功,其他失败;
getNetworkTime
获取时间轴时间
-(long long)getNetworkTime;参数说明
名称 | 类型 | 描述 |
返回说明
时间戳
sendDataChannelMessage
发送数据通道消息
-(int) sendDataChannelMessage:(AliRtcDataChannelMsg* _Nonnull)controlMsg;ARTC SDK提供发送和接收自定义消息的能力,允许在传输音视频数据的同时再发送自定义的实时消息数据,例如在音视频传输的同时传递实时控制指令、状态同步数据或其他业务消息时可调用此接口实现。具体使用方式请参考自定义消息发送和接收。
自定义消息通道默认关闭,如果需要使用该功能,请调用接口
setParameter设置("{\"data\":{\"enablePubDataChannel\":true" + ",\"enableSubDataChannel\":true}}")接口开启自定义消息通道,加入频道前后均可开启。消息可以是任意数据(例如文字)。
相关回调
当发送方成功开启自定义消息通道后,可以调用本接口发送自定义消息,接收方通过监听
onDataChannelMessage回调接收自定义的消息。
调用限制
主播角色可以发送和接收消息,观众角色仅支持接收消息。
需要调用setParameter 开启自定义消息通道。
发送数据有限制为:
比特率上限为 30 KB/s。
数据通道每秒最多可发送 60 个数据包,每个数据包最大为 1 KB。
参数说明
名称 | 类型 | 描述 |
controlMsg | AliRtcDataChannelMsg * | 伴奏控制消息 |
返回说明
0成功,其他失败;
setDeviceOrientationMode
设置设备方向
- (int)setDeviceOrientationMode:(AliRtcOrientationMode)mode;参数说明
名称 | 类型 | 描述 |
mode | AliRtcOrientationMode | 设备方向 |
返回说明
0成功,其他失败;
registerVideoFrameWithObserver
注册视频数据输出对象
- (void)registerVideoFrameWithObserver:(id<AliRtcVideoFrameDelegate> _Nullable)observer;参数说明
名称 | 类型 | 描述 |
observer | AliRtcVideoFrameDelegate | 视频数据输出对象 |
unregisterVideoSampleWithObserver
取消视频数据输出对象
- (void)unregisterVideoSampleWithObserver:(id<AliRtcVideoFrameDelegate> _Nullable)observer;参数说明
名称 | 类型 | 描述 |
observer | AliRtcVideoFrameDelegate | 视频数据输出对象 |
callback详情
onConnectionStatusChange
网络连接状态改变的回调。
- (void)onConnectionStatusChange:(AliRtcConnectionStatus)status reason:(AliRtcConnectionStatusChangeReason)reason;参数说明
名称 | 类型 | 描述 |
status | AliRtcConnectionStatus | 当前状态值。 |
reason | AliRtcConnectionStatusChangeReason | 引起状态变化的具体原因。 |
onLocalDeviceException
本地设备异常回调;客户需要关心此回调。
- (void)onLocalDeviceException:(AliRtcLocalDeviceType)deviceType exceptionType:(AliRtcLocalDeviceExceptionType)exceptionType message:(NSString *_Nullable)msg;参数说明
名称 | 类型 | 描述 |
deviceType | AliRtcLocalDeviceType | 设备类型 |
exceptionType | AliRtcLocalDeviceExceptionType | 设备异常类型 |
msg | NSString * | 异常时携带的信息 |
onAuthInfoWillExpire
用户鉴权信息即将过期通知,收到后30秒鉴权过期;客户需要关心此回调。
- (void)onAuthInfoWillExpire;onAuthInfoExpired
用户调用需要鉴权的接口,服务端返回信息过期。
- (void)onAuthInfoExpired;onJoinChannelResult[1/2]
加入频道结果回调(该回调等同于调用AliRtcEngine接口的block操作,即处理加入频道之后的事件,选择其一即可)。
- (void)onJoinChannelResult:(int)result channel:(NSString *_Nonnull)channel userId:(NSString *_Nonnull)userId elapsed:(int) elapsed;参数说明
名称 | 类型 | 描述 |
result | int | 加入频道结果,成功返回0,失败返回错误码。 |
channel | NSString * | 加入的频道ID。 |
userId | NSString * | 加入的用户ID。 |
elapsed | int | 加入频道耗时。 |
onJoinChannelResult[2/2]
加入频道结果回调(该回调等同于调用AliRtcEngine接口的block操作,即处理加入频道之后的事件,选择其一即可)。
- (void)onJoinChannelResult:(int)result channel:(NSString *_Nonnull)channel elapsed:(int) elapsed;参数说明
名称 | 类型 | 描述 |
result | int | 加入频道结果,成功返回0,失败返回错误码。 |
channel | NSString * | 加入的频道ID。 |
elapsed | int | 加入频道耗时。 |
onLeaveChannelResult
离开频道结果回调。调用AliRtcEngine接口后返回,如果调用AliRtcEngine接口后直接调用AliRtcEngine接口,将不会收到此回调。
- (void)onLeaveChannelResult:(int)result stats:(AliRtcStats)stats;参数说明
名称 | 类型 | 描述 |
result | int | 离开频道结果,成功返回0,失败返回错误码。 |
stats | AliRtcStats | 本次频道内会话的数据统计汇总。 |
onRemoteUserOffLineNotify
远端用户下线时的回调。
- (void)onRemoteUserOffLineNotify:(NSString *_Nonnull)uid offlineReason:(AliRtcUserOfflineReason)reason;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID从App server分配的唯一标示符。 |
reason | AliRtcUserOfflineReason | 用户离线的原因。 |
onRemoteUserOnLineNotify
远端用户上线时的回调。
- (void)onRemoteUserOnLineNotify:(NSString *_Nonnull)uid elapsed:(int)elapsed;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID从App server分配的唯一标示符。 |
elapsed | int | 用户加入频道时的耗时。 |
onRemoteTrackAvailableNotify
远端用户的流发生变化时回调。
- (void)onRemoteTrackAvailableNotify:(NSString *_Nonnull)uid audioTrack:(AliRtcAudioTrack)audioTrack videoTrack:(AliRtcVideoTrack)videoTrack;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID从App server分配的唯一标示符。 |
audioTrack | AliRtcAudioTrack | 远端用户发生变化后的音频流。 |
videoTrack | AliRtcVideoTrack | 远端用户发生变化后的视频流。 |
onBye
被服务器踢出或者频道关闭时回调。
- (void)onBye:(int)code;参数说明
名称 | 类型 | 描述 |
code | int | 消息类型。取值: |
onAudioPublishStateChanged
音频推流变更回调。
- (void)onAudioPublishStateChanged:(AliRtcPublishState)oldState newState:(AliRtcPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;参数说明
名称 | 类型 | 描述 |
oldState | AliRtcPublishState | 之前的推流状态。 |
newState | AliRtcPublishState | 当前的推流状态。 |
elapseSinceLastState | NSInteger | 状态变更时间间隔,单位:毫秒。 |
channel | NSString * | 当前频道ID。 |
onAudioSubscribeStateChanged
音频订阅情况变更回调。
- (void)onAudioSubscribeStateChanged:(NSString *_Nonnull)uid oldState:(AliRtcSubscribeState)oldState newState:(AliRtcSubscribeState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 订阅情况变更的用户ID。 |
oldState | AliRtcSubscribeState | 之前的订阅状态。 |
newState | AliRtcSubscribeState | 当前的订阅状态。 |
elapseSinceLastState | NSInteger | 状态变更时间间隔,单位:毫秒。 |
channel | NSString * | 当前频道ID。 |
onUserAudioMuted
用户muteAudio通知。
- (void)onUserAudioMuted:(NSString *_Nonnull)uid audioMuted:(BOOL)isMute;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 执行muteAudio的用户ID。 |
isMute | BOOL | YES表示静音,NO表示未静音。 |
onUserAudioInterruptedBegin
用户audio被中断通知(一般用户打电话等音频被抢占场景)。
- (void)onUserAudioInterruptedBegin:(NSString *_Nonnull)uid;参数说明
名称 | 类型 | 描述 |
uid | NSString * | audio被中断的用户ID。 |
onUserAudioInterruptedEnded
用户audio中断结束通知(对应回调及监听)。
- (void)onUserAudioInterruptedEnded:(NSString *_Nonnull)uid;参数说明
名称 | 类型 | 描述 |
uid | NSString * | audio中断结束的用户ID。 |
onVideoPublishStateChanged
视频推流变更回调。
- (void)onVideoPublishStateChanged:(AliRtcPublishState)oldState newState:(AliRtcPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;参数说明
名称 | 类型 | 描述 |
oldState | AliRtcPublishState | 之前的推流状态。 |
newState | AliRtcPublishState | 当前的推流状态。 |
elapseSinceLastState | NSInteger | 状态变更时间间隔,单位:毫秒。 |
channel | NSString * | 当前频道ID。 |
onVideoSubscribeStateChanged
相机流订阅情况变更回调。
- (void)onVideoSubscribeStateChanged:(NSString *_Nonnull)uid oldState:(AliRtcSubscribeState)oldState newState:(AliRtcSubscribeState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 订阅情况变更的用户ID。 |
oldState | AliRtcSubscribeState | 之前的订阅状态。 |
newState | AliRtcSubscribeState | 当前的订阅状态。 |
elapseSinceLastState | NSInteger | 状态变更时间间隔,单位:毫秒。 |
channel | NSString * | 当前频道ID。 |
onUserVideoMuted
用户muteVideo通知。
- (void)onUserVideoMuted:(NSString *_Nonnull)uid videoMuted:(BOOL)isMute;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 执行muteVideo的用户ID。 |
isMute | BOOL | YES表示推流黑帧,NO表示正常推流。 |
onUserVideoEnabled
禁用或重新启用本地视频采集的通知。
- (void)onUserVideoEnabled:(NSString *_Nullable)uid videoEnabled:(BOOL)isEnable;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 执行EnableLocalVideo的用户ID。 |
isMute | BOOL | YES表示打开相机流采集,NO表示关闭相机流采集。 |
onUserWillResignActive
远端用户应用退到后台的回调。
- (void)onUserWillResignActive:(NSString *_Nonnull)uid;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 应用退到后台的用户ID。 |
onUserWillBecomeActive
远端用户应用返回前台的回调。
- (void)onUserWillBecomeActive:(NSString *_Nonnull)uid;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 应用返回前台的用户ID。 |
onRtcStats
实时数据回调(2s触发一次)。
- (void)onRtcStats:(AliRtcStats)stats;参数说明
名称 | 类型 | 描述 |
stats | AliRtcStats | 数据回调。 |
onAudioEffectFinished
本地音效播放结束回调。
- (void)onAudioEffectFinished:(int)soundId;参数说明
名称 | 类型 | 描述 |
soundId | int | 播放完成的音效的ID。 |
onAudioVolumeCallback
订阅的音频音量、语音状态和UID的回调。
- (void)onAudioVolumeCallback:(NSArray <AliRtcUserVolumeInfo *> *_Nullable)array totalVolume:(int)totalVolume;参数说明
名称 | 类型 | 描述 |
array | NSArray <AliRtcUserVolumeInfo *> * | 表示回调用户音量信息数组,包含用户UID、语音状态以及音量,UID为0表示本地说话人。 |
totalVolume | int | 混音后的总音量,范围[0,255]。在本地用户的回调中,totalVolume为本地用户混音后的音量;在远端用户的回调中,totalVolume为所有说话者混音后的总音量。 |
onActiveSpeaker
当前正在说话的人的回调。
- (void)onActiveSpeaker:(NSString *_Nonnull)uid;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 当前正在说话的人的ID。 |
onPublishLiveStreamStateChanged
旁路推流状态改变回调。
- (void)onPublishLiveStreamStateChanged:(NSString *_Nonnull)streamURL state:(AliRtcLiveTranscodingState)state errCode:(AliRtcTrascodingLiveStreamErrorCode)errCode;参数说明
名称 | 类型 | 描述 |
streamURL | NSString * | 流地址。 |
state | AliRtcLiveTranscodingState | 状态。 |
errCode | AliRtcTrascodingLiveStreamErrorCode | 错误码。 |
onPublishTaskStateChanged
旁路任务状态改变回调。
- (void)onPublishTaskStateChanged:(NSString *_Nonnull)streamURL state:(AliRtcTrascodingLiveTaskStatus)state;参数说明
名称 | 类型 | 描述 |
streamURL | NSString * | 流地址。 |
state | AliRtcTrascodingLiveTaskStatus | 状态。 |
onNetworkQualityChanged
网络质量变化回调。
- (void)onNetworkQualityChanged:(NSString *_Nonnull)uid upNetworkQuality:(AliRtcNetworkQuality)upQuality downNetworkQuality:(AliRtcNetworkQuality)downQuality;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID,为空时表示本地用户上下行网络状态 |
upQuality | AliRtcNetworkQuality | 上行网络状态 |
downQuality | AliRtcNetworkQuality | 下行网络状态 |
onLastmileDetectResultWithQuality
网络质量探测回调。
- (void)onLastmileDetectResultWithQuality:(AliRtcNetworkQuality)networkQuality;参数说明
名称 | 类型 | 描述 |
networkQuality | AliRtcNetworkQuality | 网络质量 |
onLastmileDetectResultWithBandWidth
网络质量探测结果的回调。
- (void)onLastmileDetectResultWithBandWidth:(int)code result:(AliRtcNetworkQualityProbeResult* _Nonnull)result;参数说明
名称 | 类型 | 描述 |
code | int | 探测结果,0 成功,-1失败,网络状况较差 |
result | AliRtcNetworkQualityProbeResult * | 网络质量 |
onAudioPublishStateChanged
音频推流变更回调。
- (void)onAudioPublishStateChanged:(AliRtcAudioTrack)track oldState:(AliRtcPublishState)oldState newState:(AliRtcPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;参数说明
名称 | 类型 | 描述 |
track | AliRtcAudioTrack | track 变化的track |
oldState | AliRtcPublishState | 之前的推流状态 |
newState | AliRtcPublishState | 新的推流状态 |
elapseSinceLastState | NSInteger | 状态变更时间间隔(毫秒) |
channel | NSString * | 当前的频道ID |
onScreenSharePublishStateChanged
屏幕分享推流变更回调。
- (void)onScreenSharePublishStateChanged:(AliRtcPublishState)oldState newState:(AliRtcPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;参数说明
名称 | 类型 | 描述 |
oldState | AliRtcPublishState | 之前的推流状态 |
newState | AliRtcPublishState | 新的推流状态 |
elapseSinceLastState | NSInteger | 状态变更时间间隔(毫秒) |
channel | NSString * | 当前的频道ID |
onAudioSubscribeStateChanged
音频流订阅情况变更回调。
- (void)onAudioSubscribeStateChanged:(NSString *_Nonnull)uid track:(AliRtcAudioTrack)track oldState:(AliRtcSubscribeState)oldState newState:(AliRtcSubscribeState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID |
track | AliRtcAudioTrack | track 变化的track |
oldState | AliRtcSubscribeState | 老的拉流状态 |
newState | AliRtcSubscribeState | 新的拉流状态 |
elapseSinceLastState | NSInteger | 状态变更时间间隔(毫秒) |
channel | NSString * | 当前的频道ID |
onScreenShareSubscribeStateChanged
屏幕分享流订阅情况变更回调。
- (void)onScreenShareSubscribeStateChanged:(NSString *_Nonnull)uid oldState:(AliRtcSubscribeState)oldState newState:(AliRtcSubscribeState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID |
oldState | AliRtcSubscribeState | 老的拉流状态 |
newState | AliRtcSubscribeState | 新的拉流状态 |
elapseSinceLastState | NSInteger | 状态变更时间间隔(毫秒) |
channel | NSString * | 当前的频道ID |
onUpdateRoleNotifyWithOldRole
当用户角色发生变化时通知。
- (void)onUpdateRoleNotifyWithOldRole:(AliRtcClientRole)oldRole newRole:(AliRtcClientRole)newRole;参数说明
名称 | 类型 | 描述 |
oldRole | AliRtcClientRole | 变化前角色类型 |
newRole | AliRtcClientRole | 变化后角色类型 |
onOccurError
如果engine出现error,通过这个回调通知app。
- (void)onOccurError:(int)error message:(NSString *_Nonnull)message;参数说明
名称 | 类型 | 描述 |
error | int | Error类型,参考 {@link AliRtcErrorCode} |
message | NSString * | 错误描述 |
onFirstAudioPacketSentWithTimecost
音频首包发送回调。
- (void)onFirstAudioPacketSentWithTimecost:(AliRtcAudioTrack)track timeCost:(int)timeCost;参数说明
名称 | 类型 | 描述 |
track | AliRtcAudioTrack | 那条track |
timeCost | int | 发送耗时 |
onFirstVideoFrameReceivedWithUid
视频首帧接收回调。
- (void)onFirstVideoFrameReceivedWithUid:(NSString *_Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack timeCost:(int)timeCost;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID |
videoTrack | AliRtcVideoTrack | 视频流标签 |
timeCost | int | 耗时(毫秒) |
onFirstVideoPacketSentWithVideoTrack
视频首包发送回调。
- (void)onFirstVideoPacketSentWithVideoTrack:(AliRtcVideoTrack)videoTrack timeCost:(int)timeCost;参数说明
名称 | 类型 | 描述 |
videoTrack | AliRtcVideoTrack | 视频流标签 |
timeCost | int | 耗时(毫秒) |
onFirstAudioPacketReceivedWithUid
音频首包接收回调。
- (void)onFirstAudioPacketReceivedWithUid:(NSString *_Nonnull)uid track:(AliRtcAudioTrack)track timeCost:(int)timeCost;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID |
track | AliRtcAudioTrack | 音频流标签 |
timeCost | int | 耗时(毫秒) |
onFirstRemoteAudioDecodedWithUid
已解码远端音频首帧回调。
- (void)onFirstRemoteAudioDecodedWithUid:(NSString *_Nonnull)uid track:(AliRtcAudioTrack)track elapsed:(int)elapsed;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID |
track | AliRtcAudioTrack | 音频流标签 |
elapsed | int | 耗时(毫秒) |
onFirstRemoteVideoFrameDrawn
远端用户的第一帧视频帧显示时触发这个消息。
- (void)onFirstRemoteVideoFrameDrawn:(NSString *_Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack width:(int)width height:(int)height elapsed:(int)elapsed;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID |
videoTrack | AliRtcVideoTrack | 视频流标签 |
width | int | 宽度 |
height | int | 高度 |
elapsed | int | 本地用户加入频道直至该回调触发的延迟总耗时(毫秒) |
onFirstLocalVideoFrameDrawn
预览开始显示第一帧视频帧时触发这个消息。
- (void)onFirstLocalVideoFrameDrawn:(int)width height:(int)height elapsed:(int)elapsed;参数说明
名称 | 类型 | 描述 |
width | int | 本地预览视频宽度 |
height | int | 本地预览视频高度 |
elapsed | int | 从本地用户加入频道直至该回调触发的延迟总耗时(毫秒) |
onTestAudioVolumeCallback
通话前音频采集检测的音量回调。
- (void)onTestAudioVolumeCallback:(int)volume;参数说明
名称 | 类型 | 描述 |
volume | int | 音量[0..100] |
onAudioAccompanyStateChanged
本地伴奏播放状态回调。
- (void)onAudioAccompanyStateChanged:(AliRtcAudioAccompanyStateCode)playState errorCode:(AliRtcAudioAccompanyErrorCode)errorCode;参数说明
名称 | 类型 | 描述 |
playState | AliRtcAudioAccompanyStateCode | 伴奏状态 |
errorCode | AliRtcAudioAccompanyErrorCode | 错误代码 |
onRemoteAudioAccompanyStarted
远端用户伴奏播放开始回调。
- (void)onRemoteAudioAccompanyStarted:(NSString *_Nonnull)uid;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID |
onRemoteAudioAccompanyFinished
远端用户伴奏播放结束回调。
- (void)onRemoteAudioAccompanyFinished:(NSString *_Nonnull)uid;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID |
onVideoResolutionChanged
视频分辨率变更。
- (void)onVideoResolutionChanged:(NSString *_Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack width:(int)width height:(int)height;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID |
videoTrack | AliRtcVideoTrack | 视频track |
width | int | 宽度 |
height | int | 高度 |
onRtcLocalVideoStats
本地视频统计信息(2s触发一次)。
- (void)onRtcLocalVideoStats:(AliRtcLocalVideoStats *_Nonnull)localVideoStats;参数说明
名称 | 类型 | 描述 |
localVideoStats | AliRtcLocalVideoStats * | 本地视频统计信息 |
onRtcRemoteVideoStats
远端视频统计信息(2s触发一次)。
- (void)onRtcRemoteVideoStats:(AliRtcRemoteVideoStats *_Nonnull)remoteVideoStats;参数说明
名称 | 类型 | 描述 |
remoteVideoStats | AliRtcRemoteVideoStats * | 远端视频统计信息 |
onRtcLocalAudioStats
本地音频统计信息(2s触发一次)。
- (void)onRtcLocalAudioStats:(AliRtcLocalAudioStats *_Nonnull)localAudioStats;参数说明
名称 | 类型 | 描述 |
localAudioStats | AliRtcLocalAudioStats * | 本地音频统计信息 |
onRtcRemoteAudioStats
远端音频统计信息(2s触发一次)。
- (void)onRtcRemoteAudioStats:(AliRtcRemoteAudioStats *_Nonnull)remoteAudioStats;参数说明
名称 | 类型 | 描述 |
remoteAudioStats | AliRtcRemoteAudioStats * | 远端音频统计信息 |
onMediaExtensionMsgReceived
收到媒体扩展信息回调。
- (void)onMediaExtensionMsgReceived:(NSString *_Nonnull)uid payloadType:(int)payloadType message:(NSData *_Nonnull)data;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID |
payloadType | int | 载荷类型 |
message | NSData * | 媒体扩展信息 |
onSnapshotComplete
截图回调。
- (void)onSnapshotComplete:(NSString*_Nullable)uid videoTrack:(AliRtcVideoTrack)videoTrack image:(UIImage* _Nullable)image success:(BOOL)success;参数说明
名称 | 类型 | 描述 |
image | UIImage * | 图片类型 |
success | BOOL | 是否成功 |
onLocalAudioStateChanged
本地音频采集设备状态回调。
- (void)onLocalAudioStateChanged:(AliRtcLocalAudioStateType)state message:(NSString *_Nullable)msg;参数说明
名称 | 类型 | 描述 |
state | AliRtcLocalAudioStateType | 设备状态,AliRtcLocalAudioStateType类型 |
msg | NSString * | 设备状态变化的描述信息 |
startAudioCapture 和 stopAudioCapture的结果回调。
onLocalVideoStateChanged
本地视频采集设备状态回调。
- (void)onLocalVideoStateChanged:(AliRtcLocalVideoStateType)state message:(NSString *_Nullable)msg;参数说明
名称 | 类型 | 描述 |
state | AliRtcLocalVideoStateType | 设备状态,AliRtcLocalVideoStateType类型 |
msg | NSString * | 设备状态变化的描述信息 |
onRemoteUserSubscribedDataChannel
可以开始发送data channel消息回调。
- (void)onRemoteUserSubscribedDataChannel:(NSString *_Nonnull)uid;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID |
onDataChannelMessage
数据通道消息回调。
- (void)onDataChannelMessage:(NSString *_Nonnull)uid controlMsg:(AliRtcDataChannelMsg*_Nonnull)controlMsg;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID。 |
controlMsg | AliRtcDataChannelMsg | 数据通道消息。 |
AliRtcVideoFrameDelegate
onCaptureVideoSample
采集视频裸数据回调。
- (BOOL)onCaptureVideoSample:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;参数说明
名称 | 类型 | 描述 |
videoSource | AliRtcVideoSource | 视频流类型 |
videoSample | AliRtcVideoDataSample * | 视频裸数据 |
返回值
YES: 需要写回SDK(只对I420和CVPixelBuffer(ios/mac)有效)
NO: 不需要写回SDK
onPreEncodeVideoSample
订阅的本地编码前视频数据回调。
- (BOOL)onPreEncodeVideoSample:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;参数说明
名称 | 类型 | 描述 |
videoSource | AliRtcVideoSource | 视频流类型 |
videoSample | AliRtcVideoDataSample * | 视频裸数据 |
返回值
YES: 需要写回SDK(只对I420和CVPixelBuffer(ios/mac)有效)
NO: 不需要写回SDK
onRemoteVideoSample
订阅的远端视频数据回调。
- (BOOL)onRemoteVideoSample:(NSString *_Nonnull)uid videoSource:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;参数说明
名称 | 类型 | 描述 |
uid | NSString * | 用户ID |
videoSource | AliRtcVideoSource | 视频流类型 |
videoSample | AliRtcVideoDataSample * | 视频裸数据 |
返回值
YES: 需要写回SDK(只对I420和CVPixelBuffer(ios/mac)有效)
NO: 不需要写回SDK
onGetVideoFormatPreference
视频数据输出格式。
- (AliRtcVideoFormat)onGetVideoFormatPreference;返回值
期望视频输出格式
应用可返回期望输出的视频数据格式,默认返回 AliRtcYUV420
onGetVideoObservedFramePosition
视频数据输出位置。
- (NSInteger)onGetVideoObservedFramePosition;返回值
期望视频输出,参考 {@link AliRtcVideoObserPosition}
AliRtcAudioFrameDelegate
onCapturedAudioFrame
采集裸数据回调。
- (BOOL)onCapturedAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;参数说明
名称 | 类型 | 描述 |
frame | AliRtcAudioFrame * | 视频帧。 |
返回值
true: success。
请不要在此回调函数中做任何耗时操作,否则可能导致声音异常;
该接口支持设置采样率、声道数;
该接口支持读写模式;
onProcessCapturedAudioFrame
采集3A后数据回调。
- (BOOL)onProcessCapturedAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;参数说明
名称 | 类型 | 描述 |
frame | AliRtcAudioFrame * | 视频帧 |
返回值
true: success
请不要在此回调函数中做任何耗时操作,否则可能导致声音异常;
该接口支持设置采样率、声道数;
该接口支持读写模式;
onPublishAudioFrame
推流数据回调。
- (BOOL)onPublishAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;参数说明
名称 | 类型 | 描述 |
frame | AliRtcAudioFrame * | 视频帧 |
返回值
true: success
请不要在此回调函数中做任何耗时操作,否则可能导致声音异常;
该接口支持设置采样率、声道数;
该接口支持读写模式;
onPlaybackAudioFrame
播放数据回调。
- (BOOL)onPlaybackAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;参数说明
名称 | 类型 | 描述 |
frame | AliRtcAudioFrame * | 视频帧 |
返回值
true: success
请不要在此回调函数中做任何耗时操作,否则可能导致声音异常;
该接口支持设置采样率、声道数;
该接口支持读写模式;
onMixedAllAudioFrame
推流数据和播放数据混音后回调。
- (BOOL)onMixedAllAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;参数说明
名称 | 类型 | 描述 |
frame | AliRtcAudioFrame * | 视频帧 |
返回值
true: success
目前暂不支持。
请不要在此回调函数中做任何耗时操作,否则可能导致声音异常;
该接口支持设置采样率、声道数;
该接口支持读写模式;
onRemoteUserAudioFrame
远端拉流数据回调。
- (BOOL)onRemoteUserAudioFrame:(NSString *_Nullable)uid frame:(AliRtcAudioFrame* _Nonnull)frame;参数说明
名称 | 类型 | 描述 |
frame | AliRtcAudioFrame * | 视频帧 |
返回值
true: success
请不要在此回调函数中做任何耗时操作,否则可能导致声音异常;
该接口支持设置采样率、声道数;
该接口支持读写模式;
AliRtcEngineDestroyDelegate
onDestroyCompletion
释放引擎的回调,该回调执行后才是引擎释放完成。。
- (void)onDestroyCompletion;等待onDestroyCompletion回调之后才能执行其他方法,为避免主线程阻塞;
onTextureUpdate
OpenGL纹理更新回调。
- (int)onTextureUpdate:(int)textureId width:(int)width height:(int)height videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;参数说明
名称 | 类型 | 描述 |
textureId | int | OpenGL上下文 |
width | int | 视频宽度 |
height | int | 视频高度 |
videoSample | AliRtcVideoDataSample * | 视频帧数据 |
返回值
返回新的textureid或者老的textureid,如果返回<0的值则视为未更新textureId;
该回调会在每一帧视频数据上传到OpenGL纹理之后触发,当外部注册了OpenGL纹理数据观测器,在该回调中可以对纹理进行处理,并返回处理后的纹理ID。
注意该回调返回值必须为有效的纹理ID,如果不做任何处理必须返回参数textureId。
onTextureDestory
OpenGL上下文销毁回调。
- (void)onTextureDestory;该回调是在SDK内部OpenGL上下文销毁的时候触发。