JRTCCloud类是音视频会议开发最主要的类,提供了各种接口,供音视频会议App开发者调用
JRTCCloud类实例化单例
+ (JRTCCloud *)sharedInstance;
RTCCloud类销毁单例
+ (void)destroySharedIntance;
房间事件的回调
您可以通过 JRTCCloudRoomDelegate 获得来自JRTC_iOS.Framework的各种房间状态通知,
详见 JRTCCloudRoomDelegate.h 中的定义
@property(nonatomic,weak)id<JRTCCloudRoomDelegate> roomDelegate;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
roomDelegate | JRTCCloudRoomDelegate | 是 | 房间事件的各种回调 |
网络事件的回调
视频会议中,网络状态发生变化时的回调,详见 JRTCCloudNetDelegate.h 中的定义
@property(nonatomic,weak)id<JRTCCloudNetDelegate> netDelegate;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
netDelegate | JRTCCloudNetDelegate | 是 | 网络事件的各种回调 |
消息大厅消息事件的各种回调
消息大厅,接收消息事件的回调,详见 JRTCCloudMessageDelegate.h中的定义
@property(nonatomic,weak)id<JRTCCloudMessageDelegate> messageDelegate
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
messageDelegate | JRTCCloudMessageDelegate | 是 | 消息大厅消息事件的各种回调 |
开启或者关闭摄像头视频帧向外流出
@property(nonatomic,assign)BOOL isCameraVideoFrameOut
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
isCameraVideoFrameOu7 | BOOL | 否 | 虚拟背景、美颜之类的功能,可开启此功能,开启后,本地摄像头采集到的视频帧会向外流出,外部可处理视频帧,默认关闭 |
是否非自动订阅远端音频流
@property(nonatomic,assign)BOOL isNOAutoSubRemoteAudios
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
isNOAutoSubRemoteAudios | BOOL | 否 | 默认为NO,为NO时,不需要App层手动订阅远端音频流,YES时需要App层手动调用订阅远端音频流。手动订阅远端音频流接口为:-(void)startRemoteAudios,手动取消订阅远端音频流接口为:-(void)stopRemoteAudios |
检查SDK是否异常,可入会前后进行检查
checkBlock 检查回调,包含各种信息,内容不断增加中
+ (void)checkJrtcSDKWithCheckBlock:(CheckBlock)checkBlock
参数说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
checkBlock | typedef void (^CheckBlock)(NSDictionary *checkInfo) | 是 | 信息为Dictionary形式,包括如下:麦克风是否授权key为:isAudioAuthed,value为0或者1,0表示未授权,1表示已授权。摄像头是否授权key为:isCameraAuthed,value为0或者1,0表示未授权,1表示已授权 |
设置jrtc服务端地址
此方法调用时机为调用[JRTCCloud sharedInstance]及设置了roomDelegate后,并且在调用enterRoomWithAuthModel加入房间前。不调用此方法,jrtc服务端地址为默认地址,调用此方法,jrtc服务端地址为设置的httpHost地址,httpHost无效时,会触发错误回调,并且jrtc服务端地址为默认地址
- (void)setHttpHost:(NSString *)httpHost
参数说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
httpHost | NSString | 否 | 服务端地址 |
设置jrtc 配置文件服务端地址
此方法调用时机为调用[JRTCCloud sharedInstance]之前。不调用此方法,jrtc配置文件服务端地址为默认地址,调用此方法,jrtc服务端地址为设置的configPath地址,configPath无效时,会触发错误回调
+ (void)setSDKConfigPath:(NSString *)configPath
successBlock:(void (^)(void))successBlock
failedBlock:(void (^)(NSError *error))failedBlock
参数说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
configPath | NSString | 否 | 配置文件服务端地址 |
successBlock | void | 否 | 配置结果,配置成功,则走此回调 |
failedBlock | NSError | 否 | 配置结果,配置失败,则走此回调,error中包含错误信息 |
设置jrtc 配置文件内容
此方法调用时机为调用[JRTCCloud sharedInstance]之前。
不调用此方法,jrtc配置文件内容为默认内容,调用此方法,jrtc配置文件内容为设置的configString内容,configString无效时,会触发错误回调
+ (void)setSDKConfigString:(NSString *)configString
successBlock:(void (^)(void))successBlock
failedBlock:(void (^)(NSError *error))failedBlock
参数说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
configString | NSString | 否 | 配置文件内容 |
successBlock | void | 否 | 配置结果,配置成功,则走此回调 |
failedBlock | NSError | 否 | 配置结果,配置失败,则走此回调,error中包含错误信息 |
设置jrtc 配置文件服务端地址
此方法调用时机为调用[JRTCCloud sharedInstance]及设置了roomDelegate后,并且在调用enterRoomWithAuthModel加入房间前。不调用此方法,jrtc配置文件服务端地址为默认地址,调用此方法,jrtc服务端地址为设置的configPath地址,configPath无效时,会触发错误回调,并且jrtc服务端地址为默认地址
- (void)setSDKConfigPath:(NSString *)configPath
参数说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
configPath | NSString | 否 | 配置文件服务端地址 |
设置jrtc 配置文件内容
此方法调用时机为调用[JRTCCloud sharedInstance]及设置了roomDelegate后,并且在调用enterRoomWithAuthModel加入房间前。不调用此方法,jrtc配置文件内容为默认内容,调用此方法,jrtc配置文件内容为设置的configString内容configString无效时,会触发错误回调,并且jrtc服务端地址为默认地址
- (void)setSDKConfigString:(NSString *)configString
参数说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
configString | NSString | 否 | 配置文件内容 |
初始化消息大厅
消息大厅发送消息,不必进入房间。参数错误的话,会收到JRTCCloudMessageDelegate中错误回调
- (void)initJmsgMessageWithAuthModel:(JRTCEnterRoomAuthModel *)authModel;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
authModel | JRTCEnterRoomAuthModel | 是 | authModel 初始化消息大厅必须的认证信息,由京东云控制台相关接口下发 |
开启/关闭 网络增强
只能在进入房间前进行设置,不设置的话,默认为NO
- (void)enableNetWorkEnhance:(BOOL) enable
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
enable | BOOL | 否 | 是否打开网络增强功能 |
加入房间
如果在调用加入房间前,调用了退出房间,则必须等退出房间finishBlock回调后,才能再次调用加入房间接口;
加入房间后,本地用户会收到JRTCCloudRoomDelegate中加入房间成功的消息回调,
同一房间内,远端用户会收到JRTCCloudRoomDelegate中有用户加入房间的回调消息。
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
注意:只有处于未进入房间状态下,才能调用加入房间,否则调用无效。
authMode 加入房间必传的参数,携带加入房间必须的鉴权信息,authModel相关数据,由京东云控制台相关接口下发
- (void)enterRoomWithAuthModel:(JRTCEnterRoomAuthModel *)authMode
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
authMode | JRTCEnterRoomAuthModel | 是 | 加入房间必须的鉴权信息,相关数据,由京东云控制台相关接口下发 |
离开房间
本地用户调用离开房间后,同一房间内,远端用户会收到JRTCCloudRoomDelegate中用户离开房间的回调消息,
注意:只有处于已进入房间状态下,才能调用退出房间,否则调用无效。
- (void)exitRoomWithFinishBlock:(FinishBlock)finishBlock;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
finishBlock | FinishBlock | 是 | 离开房间完成回调,只有离开房间后,才能再次调用加入房间接口 |
开关智能音频降噪
进入房间后,可动态开关智能音频降噪
- (void)openNoiseEx:(BOOL)noiseExIsOpen
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
noiseExIsOpen | BOOL | 是 | 是否打开智能音频降噪,默认开启,YES时,打开智能音频降噪,NO时关闭智能音频降噪 |
设置视频编码器相关参数
该设置决定了远端用户看到的画面质量及远端用户能否拉去大小画面视频流
该设置应该在调用 startLocalPreview:view:函数前设置
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
如果不设置,本地视频默认分辨率为720P,帧率为15帧,默认不开启视频大小画面推流
- (void)setCameraEncoderWithParam:(JRTCVideoEncParam*)param;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
param | JRTCVideoEncParam | 是 | 视频编码相关参数 |
向外流出本地推流的摄像头采集的视频帧
-(void)onCaptureVideoFrameBlock:(void (^)(JRTCVideoFrame * videoFrame))videoFrameBlocK
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
videoFrameBlocK | void (^)(JRTCVideoFrame * videoFrame) | 是 | 本地摄像头采集的推流视频帧回调 |
输入外部处理视频帧
外部处理本地摄像头采集的视频帧后,生成新的视频帧,再传给JRTCCloud
- (void)inputVideoFrame:(JRTCVideoFrame *)videoFrame
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
videoFrame | JRTCVideoFrame | 是 | 处理后的本地视频帧 |
打开本地预览,只预览
调用此接口前,先调用初始化消息大厅接口(initJmsgMessageWithAuthModel)或者进入房间接口(enterRoomWithEnterRoomModel),打开本地预览。否则本地用户会收不到JRTCCloudRoomDelegate中本地视频流视频第一帧宽高回调
- (void)onlyStartLocalPreviewWithFrontCamera:(BOOL)frontCamera
addLocalCameraRenderView:(JRTCVideoView *)view
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
frontCamera | BOOL | 是 | 视频采集前后摄像头 |
view | JRTCVideoView | 是 | 视频绘制展示画面 |
关闭本地预览
- (void)onlyStopLocalPreview
设置采集本地预览视频的前后摄像头,及视频要绘制展示的画面。
1.调用此接口前,先调用初始化消息大厅接口(initJmsgMessageWithAuthModel)或者进入房间接口(enterRoomWithEnterRoomModel),打开本地预览。否则本地用户会收不到JRTCCloudRoomDelegate中本地视频流视频第一帧宽高回调。加入房间成功后,会自动发布本地用户视频流,同一房间内,远端用户会收到JRTCCloudRoomDelegate中有视频流可以订阅的回调,远端用户可以根据可以订阅的视频流,来决定是否订阅对应视频流。发布本地用户视频流成功后,同一房间内,远端用户会收JRTCCloudRoomDelegate中有视频流可以订阅的回调,远端用户可以根据可以订阅的视频流,来决定是否订阅对应视频流。
2.本地用户自己也会在视频流发布成功后,本地用户会收到JRTCCloudRoomDelegate中,本地视频流打开的回调消息,并且也会收到本地视频流视频第一帧宽高,通过宽高比,来决定如何展示。参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。本地用户加入房间后,调用此函数,发布视频流,如果发布视频流超时,会触发错误类型为JRTC_ERROR_CODE_PUBLISH_VIDEO_STREAM_TIMEOUT错误回调,超时时间15秒,本地用户可重新调用此函数,重新发布视频流。
- (void)startLocalPreviewWithFrontCamera:(BOOL)frontCamera
priority:(NSInteger)capHighPriority
view:(JRTCVideoView *)view
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
frontCamera | BOOL | 是 | 视频采集前后摄像头 |
capHighPriority | NSInteger | 是 | 本地发布视频流的优先级,设置值范围0-100,值越高,优先级越高,默认为0 |
view | JRTCVideoView | 是 | 视频绘制展示画面 |
停止本地摄像头采集视频
调用此接口,出错时,本地用户会收到JRTCCloudRoomDelegate中的错误回调;
成功的话本地用户端不会收到任何回调,直接修改相关数据状态。
本地用户调用停止本地摄像头采集视频成功后,同一房间内,
远端用户会收到JRTCCloudRoomDelegate中有视频流不可以订阅的回调消息,
远端用户可以根据此视频流不可以订阅,来置空此条视频流相关信息。
- (void)stopLocalPreview;
添加本地摄像头采集视频渲染画面
- (void)addLocalCameraRenderView:(JRTCVideoView *)view
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
view | JRTCVideoView | 是 | 视频绘制展示画面 |
停止本地摄像头采集视频
- (void)removeLocalCameraRenderView:(JRTCVideoView *)view
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
view | JRTCVideoView | 是 | 视频绘制展示画面 |
暂停/继续推送本地的视频数据
加入房间成功后,才可以调用此接口。
同一房间中,本地用户不会收到任何回调,
远端用户会收到JRTCCloudRoomDelegate中有视频流暂停或者继续的消息,
进而展示或者隐藏相应视频画面。
- (void)muteLocalVideoWithMute:(BOOL)mute;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
mute | BOOL | 是 | YES为暂停 NO为继续 |
订阅远端视频流
加入房间成功后,才可调用此接口。同一房间中,订阅远端视频流成功后,用户会收到JRTCCloudRoomDelegate中是否有视频暂停或继续的回调消息,及视频画面第一帧宽高的回调消息。如果视频第一帧宽高都不为0,则可以展示此画面。参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。本地用户加入房间后,调用此函数,订阅远端视频流,订阅视频流超时,会触发JRTC_ERROR_CODE_SUBSCRIBE_VEDIO_STREAM_TIMEOUT类型的错误回调,超时时间15秒,本地用户可重新调用此函数,重新订阅视频流。如果远端用户只发布了小画面视频流,本地用户订阅大小画面视频流无效,都会只订阅成功远端用户发布的视频流。如果远端用户只发布了大画面视频流,本地用户订阅大小画面视频流会有效,会订阅成功远端用户发布的大小画面视频流。
本地用户加入房间后,调用此函数,订阅远端视频流,订阅视频流超时,会触发JRTC_ERROR_CODE_SUBSCRIBE_VEDIO_STREAM_TIMEOUT类型的错误回调,超时时间15秒,本地用户可重新调用此函数,重新订阅视频流。
- (void)startRemoteVideoWithVideoView:(JRTCVideoView *)videoView
userID:(NSString *)userId
streamID:(NSString *)streamId
streamModelType:(JRTC_VIDEO_STREAM_MODEL_TYPE)modelType
streamType:(JRTC_VIDEO_STREAM_TYPE)streamType;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
videoView | JRTCVideoView | 是 | 远端视频流要绘制的画面 |
userId | NSString | 是 | 要订阅视频流对应的userID |
streamId | NSString | 是 | 要订阅视频流对应的streamId |
modelType | JRTC_VIDEO_STREAM_MODEL_TYPE | 是 | 指定获取到视频流类型 |
streamType | JRTC_VIDEO_STREAM_TYPE | 是 | 视频流类型,0为小画面视频流 1为大画面视频流 |
切换大小画面流
加入房间成功后,才可调用此接口。全屏展示视频时,可以选择视频流为大画面视频流,小屏展示视频时,可选择视频流为小画面视频流,已达到减少耗电与节省流量。此接口没有相应的成功失败回调,如果失败,则保持为切换前的大小画面视频流。如果视频流大小画面切换成功,会触发onFirstVideoFrame视频帧宽高改变回调,参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。如果远端用户只发布了小画面视频流,本地用户切换远端用户大小画面视频流无效,都会只展示远端用户发布的视频流。如果远端用户只发布了大画面视频流,本地用户切换远端用户大小画面视频流会有效,会展示远端用户发布的大小画面视频流。
注意:未订阅成功的视频流,禁止切换大小画面流。
- (void)changeVideoStreamWithStreamId:(NSString *)videoStreamId
streamModelType:(JRTC_VIDEO_STREAM_MODEL_TYPE)modelType
streamType:(JRTC_VIDEO_STREAM_TYPE)streamType;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
videoStreamId | NSString | 是 | 视频流 |
modelType | JRTC_VIDEO_STREAM_MODEL_TYPE | 是 | 指定获取到视频流类型 |
streamType | JRTC_VIDEO_STREAM_TYPE | 是 | 视频流类型,0为小画面视频流 1为大画面视频流 |
取消渲染远端视频流到视频画面
加入房间成功后,才可调用此接口。调用此接口,出错时,本地用户会收到JRTCCloudRoomDelegate中的错误回调;成功的话本地用户端不会收到任何回调,直接修改相关数据状态。调完此接口后,videoView会展示为最后一帧画面。参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
- (void)stopRenderRemoteVideoWithVideoView:(JRTCVideoView *)videoView
userId:(NSString *)userId
streamID:(NSString *)streamId
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
videoView | JRTCVideoView | 是 | 远端视频流要取消绘制的画面 |
userId | NSString | 是 | 要取消订阅视频流对应的userID |
streamId | NSString | 是 | 要取消订阅视频流对应的streamId |
取消订阅视频流
加入房间成功后,才可调用此接口。调用此接口,出错时,本地用户会收到JRTCCloudRoomDelegate中的错误回调;成功的话本地用户端不会收到任何回调,直接修改相关数据状态。参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
- (void)stopRemoteVideoWithUserId:(NSString *)userId
streamID:(NSString *)streamId
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
userId | NSString | 是 | 要取消订阅视频流对应的userID |
streamId | NSString | 是 | 要取消订阅视频流对应的streamId |
暂停/继续订阅远端的视频数据。
加入房间成功后,才可调用此接口。
暂停的话通道不断,网络数据不收,本地用户不会收到回调消息,
同一房间中,对应远端用户画面会展示为远端视频流最后一帧画面。
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
- (void)muteRemoteVideoWithStreamId:(NSString*)streamId
mute:(BOOL)mute;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
streamId | NSString | 是 | 远端视频流streamId |
mute | BOOL | 是 | YES为暂停 NO为继续 |
暂停/继续订阅所有远端用户的视频数据。
加入房间成功后,才可调用此接口。
暂停的话通道不断,网络数据不收,本地用户不会收到回调消息,
同一房间中,远端所有用户画面会展示为视频流最后一帧画面。
- (void)muteAllRemoteVideoStreamsWithMute:(BOOL)mute;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
mute | BOOL | 是 | YES为暂停 NO为继续 |
设置本地摄像头预览画面的镜像模式
- (void)setLocalPreVideoIsMirror:(BOOL)mirror;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
mirror | BOOL | 是 | YES为镜像 NO为非镜像 |
开启本地音频的采集
当本地用户加进房间成功后,会自动发布本地用户音频流,推流成功后,本地用户会收到JRTCCloudRoomDelegate中本地音频流可用的回调消息,远端用户会收到JRTCCloudRoomDelegate中有音频流可以订阅的回调,远端用户可以根据有音频流可以订阅,来决定是否订阅此条音频流。本地用户加入房间后,调用此函数,发布音频流,如果发布音频流超时,会触发错误类型为JRTC_ERROR_CODE_PUBLISH_AUDIO_STREAM_TIMEOUT错误回调,超时时间15秒,本地用户可重新调用此函数,重新发布音频流。
- (void)startLocalAudioWithPriority:(NSInteger)micHighPriority
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
micHighPriority | NSInteger | 是 | micHighPriority 本地发布音频流的优先级,设置值范围0-100,值越高,优先级越高,默认为0 |
关闭本地音频的采集和上行
调用此接口,出错时,本地用户会收到JRTCCloudRoomDelegate中的错误回调;
成功的话本地用户端不会收到任何回调,直接修改相关数据状态。
远端用户会走JRTCCloudRoomDelegate中有音频流不可以订阅的回调,
远端用户可以根据有音频流不可以订阅,来置空此条音频流相关信息。
- (void)stopLocalAudio;
订阅远端音频流
加入房间成功后,才可调用此接口。
订阅远端视频流后,订阅成功后,本地用户会收到JRTCCloudRoomDelegate中音频流继续、
音频流音量信息的回调消息。
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
大房间模式下,用户不可订阅远端用户音频流。
本地用户加入房间后,调用此函数,订阅远端音频流,订阅音频流超时,会触发JRTC_ERROR_CODE_SUBSCRIBE_AUDIO_STREAM_TIMEOUT类型的错误回调,超时时间15秒,本地用户可重新调用此函数,重新订阅音频流。
- (void)startRemoteAudioWithUserId:(NSString *)userId
streamID:(NSString *)streamId;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
userId | NSString | 是 | 要订阅音频流对应的userId |
streamId | NSString | 是 | 要订阅音频流对应的streamId |
取消订阅远端音频流
加入房间成功后,才可调用此接口。
调用此接口,出错时,本地用户会收到JRTCCloudRoomDelegate中的错误回调;
成功的话本地用户端不会收到任何回调,直接修改相关数据状态。
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
注意:1.大房间模式下,本地用户不可取消订阅远端用户音频流。
- (void)stopRemoteAudioWithUserId:(NSString *)userId
streamID:(NSString *)streamId;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
userId | NSString | 是 | 要取消订阅音频流对应的userID |
streamId | NSString | 是 | 要取消订阅音频流对应的streamId |
静音/取消静音本地的音频
加入房间成功后,才可调用此接口。
远端用户会收到JRTCCloudRoomDelegate中有音频流暂停或者继续的回调消息,
进而改变有关音频展示的UI,本地用户不会收到回调消息。
- (void)muteLocalAudioWithMute:(BOOL)mute;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
mute | BOOL | 是 | mute YES为静音 NO为取消静音 |
静音/取消静音指定的远端用户的声音。
加入房间成功后,才可以调用此接口。
静音的话通道不断,网络数据不收,本地用户不会收到回调消息。
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
- (void)muteRemoteAudioStreamWithStreamId:(NSString *)streamId
mute:(BOOL)mute;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
streamId | NSString | 是 | 音频流streamId |
mute | BOOL | 是 | YES为静音 NO为取消静音 |
静音/取消静音所有远端用户的声音
加入房间成功后,才可以调用此接口。
静音的话通道不断,网络数据不收,本地用户不会收到回调消息。
- (void)muteAllRemoteAudioStreamsWithMute:(BOOL)mute;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
mute | BOOL | 是 | YES为静音 NO为取消静音 |
订阅会议远端音频流
加入房间成功前调用此接口,SDK内部会记录需要订阅远端音频流状态,等加入房间成功后,会真正去订阅远端音频流,加入房间成功后,调用此接口,SDK内部会订阅远端音频流。
-(void)startRemoteAudios
取消订阅会议远端音频流
加入房间成功前调用此接口,SDK内部会记录需要取消订阅远端音频流状态,等加入房间成功后,SDK根据此状态不会订阅远端音频流。加入房间成功后,调用此接口,如果SDK内部会根据订阅远端音频流状态,如果为已订阅状态,则取消远端音频流订阅,否则不做任何操作。
-(void)stopRemoteAudios
切换前后摄像头
- (void)switchCamera;
注意:只能是进入房间成功后,才能修改昵称
修改昵称
加入房间成功后,才可以调用此接口。
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
- (void)changeNickNameWithNickName:(NSString *)nickName;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
nickName | NSString | 是 | 新的昵称 |
获取版本号
+ (NSString *)getSDKVersion;
发送消息
发送消息,消息大厅和普通模式下,发送消息都调用此函数。
消息大厅模式下,用户不必加进房间,发送消息后,远端用户会收到JRTCCloudMessageDelegate中的回调消息;
普通模式下,用户必须加入房间,同一房间中,远端用户会走JRTCCloudRoomDelegate.h中消息接收回调。
- (void)sendMessageWithModel:(JRTCMessageModel *)messageModel
finishBlock:(SendMessageBlock)finishBlock;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
messageModel | JRTCMessageModel | 是 | 消息内容,当messageModel中的toUserID为空时,为广播消息;有值时为单独发给对应的远端用户 |
finishBlock | SendMessageBlock | 是 | 发送消息完成回调 |
订阅多个字幕流
-(void)subRemoteDataStreamsWithStreamIds:(NSArray *)streamIds;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
streamIds | NSArray | 是 | 需要订阅的字幕流数组,当streamIds为空时,订阅字幕流无效,需要订阅多少字幕流,传递多少个以字幕流streamId组成的数组 |
订阅单个字幕流
-(void)subRemoteDataStreamWithStreamId:(NSString *)streamId;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
streamId | NSString | 是 | streamId 需要订阅的字幕流数组,当streamId为空时,订阅字幕流无效 |
取消订阅多个字幕流
-(void)unSubRemoteDataStreamsWithStreamIds:(NSArray *)streamIds;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
streamIds | NSArray | 是 | 需要取消订阅多少字幕流,传递多少个以字幕流streamId组成的数组 |
取消订阅单个字幕流
-(void)unSubRemoteDataStreamWithStreamId:(NSString *)streamId;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
streamId | NSString | 是 | 需要订阅的字幕流数组,当streamId为空时,取消订阅字幕流无效 |
开始混流任务
下发混流任务,混流成功后,本地用户会收到JRTCCloudRoomDelegate中混流成功的回调
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
- (void)startMixStreamWithSrcStreamInfos:(NSArray <JRTCMixSrcStreamModel*>*)srcStreamInfos
destStreamInfo:(JRTCMixDestStreamModel *)destStreamInfo
toPushStreamUrl:(NSString *)toPushStreamUrl;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
srcStreamInfos | NSArray | 是 | 源流信息列表 |
destStreamInfo | JRTCMixDestStreamModel | 是 | 混流后 目标流id |
toPushStreamUrl | NSString | 非 | 推直播平台的推流地址,如果存在必须携带 |
更新混流任务
只有已经混流成功的视频流,才可以调用此接口
更新混流成功后,本地用户会收到JRTCCloudRoomDelegate中更新混流成功的回调
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
- (void)updateMixStreamWithSrcStreamInfos:(NSArray <JRTCMixSrcStreamModel*>*)srcStreamInfos
destStreamId:(NSString *)destStreamId
toPushStreamUrl:(NSString *)toPushStreamUrl;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
srcStreamInfos | NSArray | 是 | 源流信息列表 |
destStreamInfo | JRTCMixDestStreamModel | 是 | 混流后 目标流id |
toPushStreamUrl | NSString | 非 | 推直播平台的推流地址,如果存在必须携带 |
关闭混流任务
本地用户不会收到任何回调
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
- (void)closeMixStreamWithDestStreamId:(NSString *)destStreamId
toPushStreamUrl:(NSString *)toPushStreamUrl;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
destStreamId | NSString | 是 | 混流后 目标流id |
toPushStreamUrl | NSString | 非 | 推直播平台的推流地址,如果存在必须携带 |
远端用户全体静音或取消静音
加入房间成功后,才可以调用此接口。
同一房间内,本地用户不会收到回调消息;
远端所有用户都会收到JRTCCloudRoomDelegate.h房间静音或取消静音的回调消息。
-(void)muteAllAudioWithIsMute:(BOOL)isMute;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
isMute | BOOL | 是 | 静音/取消静音 |
单独静音或取消静音某个用户
加入房间成功后,才可以调用此接口。
同一房间内,房间中对应人员会收到JRTCCloudRoomDelegate.h静音或取消静音的回调。
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
-(void)muteUserAudioWithIsMute:(BOOL)isMute
userID:(NSString *)userId;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
isMute | BOOL | 是 | 静音/取消静音 |
userId | NSString | 是 | 对应用户userId |
房间中禁止/允许开启视频
加入房间成功后,才可以调用此接口。
同一房间内,远端用户全部禁止/允许开启视频频流,本地用户不会收到回调消息;
远端所有用户都会收到JRTCCloudRoomDelegate.h中房间中禁止/允许开启视频流的回调。
-(void)forbidAllVideoWithIsForbid:(BOOL)isForbid;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
isForbid | BOOL | 是 | 关闭或取消关闭推视频流 |
远端用户禁止/允许开启视频流,
加入房间成功后,才可以调用此接口。
同一房间内,本地用户不会收到回调消息;
远端对应用户会收到JRTCCloudRoomDelegate.h单个用户禁止/允许开启视频流回调。
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
-(void)forbidUserVideoWithIsForbid:(BOOL)isForbid
userID:(NSString *)userId;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
isForbid | BOOL | 是 | 禁止/允许开启视频流 |
userId | NSString | 是 | 对应用户userId |
禁止/允许聊天
加入房间成功后,才可以调用此接口。
同一房间内,本地用户不会收到回调消息;
远端所有用户都会收到JRTCCloudRoomDelegate.h中房间中禁止/允许聊天回调。
-(void)forbidChatWithIsForbid:(BOOL)isForbid;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
isForbid | BOOL | 是 | 禁止/允许聊天 |
主持人结束会议
加入房间成功后,才可以调用此接口。
同一房间内,远端用户会收到JRTCCloudRoomDelegate.h中主持人结束会议回调。
-(void)hosterFinishMeeting;
向整个房间发送自定义事件。
加入房间成功后,才可以调用此接口。
同一房间内,本地用户不会收到回调,
远端用户会收到JRTCCloudRoomDelegate.h中自定义房间事件回调
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
-(void)customSignalToRoomWithEventName:(NSString *)eventName
info:(NSDictionary *)info;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
eventName | NSString | 是 | 自定义事件名称,不能为空 |
info | NSDictionary | 是 | 事件需要携带的信息,不能为空 |
向某个人发送自定义事件。
加入房间成功后,才可以调用此接口。
同一房间内,本地用户不会收到回调,
对应远端用户会收到JRTCCloudRoomDelegate.h中自定义事件回调
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
-(void)customSignalToUserWithTargetUserId:(NSString *)userId
eventName:(NSString *)eventName
info:(NSDictionary *)info;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
userId | NSString | 是 | 接受事件人的userId,不能为空 |
eventName | NSString | 是 | 自定义事件名称,不能为空 |
info | NSDictionary | 是 | 事件需要携带的信息,不能为空 |
重置AudioSession为JRTCCloud音视频会议Configuration。
会议中,用户App其它业务模块,修改了AudioSession的Category,mode,Option,categoryOptions,
sampleRate,isActive等,可能会造成音视频会议的音频出现问题,可在适当时机重置音视频会议的AudioSession为JRTCCloud内部支持的AudioSession配置此函数一掉要在调用setCameraEncoderWithParam:后再调用
-(void)setAudioSessionWithJRTCCloudConfiguration;
设置AudioSession的CategoryOptions。
不调用此函数,会议默认CategoryOptions为AVAudioSessionCategoryOptionAllowBluetooth。设置为AVAudioSessionCategoryOptionMixWithOthers,其它App打开音频播放,不会中断会议音频设置为AVAudioSessionCategoryOptionDuckOthers,其它App打开音频播放,不会中断会议音频,且会议音频声音会盖过其它App音频。此函数一掉要在调用setCameraEncoderWithParam:后再调用
-(void)resetRTCAudioSessionCategoryOptionsWithOptions:(AVAudioSessionCategoryOptions)options;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
options | AVAudioSessionCategoryOptions | 是 | AudioSession的CategoryOptions |
开始分享录屏前,调用此接口,开始分享,只支持iOS12及以上系统。
- (void)screenShareStartWithAppGroup:(NSString *)appGroup priority:(NSInteger)screenHighPriority;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
appGroup | NSString | 是 | appGroup 用于指定您的应用与录屏进程共享的 Application Group Identifier |
screenHighPriority | NSInteger | 是 | screenHighPriority 本地发布屏幕共享视频流的优先级,设置值范围0-100,值越高,优先级越高,默认为0 |
录屏分享结束后,调用此接口,结束分享。
- (void)screenShareFinished;
上传日志接口。
+ (void)startUploadRtcLogsWithDeviceAppId:(NSString *)appId
recentDayCount:(NSInteger)recentDayCount
uploadProgressBlock:(void (^)(CGFloat progress))uploadProgressBlock
uploadResultBlock:(void (^)(NSError *error))uploadResultBlock;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
appId | NSString | 是 | 设备唯一号,取值与进入房间时JRTCEnterRoomAuthModel中的appId相同,可为nil |
recentDayCount | NSInteger | 是 | 需要上传最近几天的日志,取值范围为1-7 |
uploadProgressBlock | void (^)(CGFloat progress) | 是 | 上传进度,范围为0到1的浮点值,1表示上传完成 |
uploadResultBlock | void (^)(NSError *error) | 是 | 上传结果,error为nil是表示上传成功,不为nil时,表示上传失败 |
App层上传log日志接口。
- (void)addLoganWithLogString:(NSString *)logString;
参数说明:
参数名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
logString | NSString | 是 | 上传日志内容,为空或字段长度为0,上传日志无效 |
视频会议房各种事件回调接口
错误事件回调
-(void)onRoomError:(NSInteger)errorCode errorState:(NSString *)errorState errorInfo:(NSDictionary *)errorInfo;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
errorCode | NSInteger | 错误码 |
errorState | NSString | 错误描述 |
errorInfo | NSDictionary | 错误信息,可能为空 |
新的错误事件回调,与旧的错误码回调共存,若果需要可以使用新的错误码回调
-(void)onRoomReportError:(NSInteger)errorCode
message:(NSString *)message
info:(NSString *)info;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
errorCode | NSInteger | 错误码 |
message | NSString | 错误描述 |
info | NSString | 错误信息,可能为空 |
加入房间成功回调
-(void)onRoomJoinWithUserInfos:(NSDictionary *)infosDict;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
infosDict | NSDictionary | 房间中的所有用户信息 |
新用户加入房间回调
-(void)onRoomUserJoinWithUserId:(NSString *)userId nickName:(NSString *)nickName;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString | 用户userId |
nickName | NSString | 用户昵称 |
用户离开房间回调
-(void)onRoomUserLeaveWithUserId:(NSString *)userId;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString | 用户userId |
对于远端视频流对应为是否可订阅回调;对于用户自己的视频流,用户本地视频流推流成功后,本行用户会收到此回调,同时available为YES。
-(void)onUserNormalVideoAvailableWithUserId:(NSString *)userId
streamId:(NSString *)streamId
streamName:(NSString *)streamName
available:(BOOL)available;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString | 用户userId |
streamId | NSString | 视频流ID |
streamName | NSString | 视频流名称 |
available | BOOL | 视频流是否可用 |
对于远端共享视频流对应为是否可订阅回调;对于用户自己的共享视频流,用户本地共享视频流推流成功后,本行用户会收到此回调,同时available为YES。
-(void)onUserNormalVideoAvailableWithUserId:(NSString *)userId
streamId:(NSString *)streamId
streamName:(NSString *)streamName
available:(BOOL)available;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString | 用户userId |
streamId | NSString | 视频流ID |
streamName | NSString | 视频流名称 |
available | BOOL | 视频流是否可用 |
对于远端音频流对应为是否可订阅回调;对于用户自己的音频流,用户本地音频流推流成功后,本行用户会收到此回调,同时available为YES。
-(void)onUserAudioAvailableWithUserId:(NSString *)userId
streamId:(NSString *)streamId
streamName:(NSString *)streamName
available:(BOOL)available;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString | 用户userId |
streamId | NSString | 音频流ID |
streamName | NSString | 音频流名称 |
available | BOOL | 音频流是否可用 |
视频流暂停或者继续回调
-(void)onUserVideoMuteWithUserId:(NSString *)userId
streamId:(NSString *)streamId
mute:(BOOL)mute;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString | 用户userId |
streamId | NSString | 视频流ID |
mute | BOOL | 视频流暂停或者继续 |
音频流暂停或者继续回调
-(void)onUserAudioMuteWithUserId:(NSString *)userId
streamId:(NSString *)streamId
mute:(BOOL)mute;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString | 用户userId |
streamId | NSString | 音频流ID |
mute | BOOL | 视频流暂停或者继续 |
房间中有人正在说话的回调
-(void)onRoomUserVoiceActived:(NSString *)roomId
userId:(NSString *)userId
volume:(CGFloat)volume;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
roomId | NSString | 房间ID |
userId | NSString | 用户userId |
volume | NSDictionary | 音量,范围为0.0-1.0,值越大,表示音量越大 |
视频流开始展示的第一帧宽高回调
用户可以根据视频帧宽高比来展示相应的视频画面
-(void)onFirstVideoFrameWithUserId:(NSString *)userId
streamId:(NSString *)streamId
width:(CGFloat)width
height:(CGFloat)height;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString | 视频流对应的userId |
streamId | NSString | 视频流ID,本地预览的时候,streamId为nil |
width | CGFloat | 视频帧宽度 |
height | CGFloat | 视频帧高度 |
有用户修改昵称回调
-(void)onRoomUserUpdateNickName:(NSString *)roomId
userId:(NSString *)userId
nickName:(NSString *)nickName
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
roomId | NSString | 房间ID |
userId | NSString | 用户userId |
nickName | BOOL | 用户新昵称 |
普通房间接收到广播消息回调
如果是自己发送给所有人,自己也会收到这条回调
-(void)onRecvMsgFromUserId:(NSString *)userId
nickName:(NSString *)nickName
msg:(NSString *)msg;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString | 发送消息者userId |
nickName | NSString | 发送消息者昵称 |
msg | NSString | 消息内容 |
混流成功回调
-(void)onRoomMixStreamWithDestStreamId:(NSString *)destStreamId;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
destStreamId | NSString | 生成混流的streamId |
更新混流成功回调
-(void)onRoomUpdateMixStreamWithDestStreamId:(NSString *)destStreamId;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
destStreamId | NSString | 更新后,生成混流的streamId |
本地用户接收到向整个房间广播的静音或者取消静音回调
-(void)onAudioMuteToRoomWithIsMute:(BOOL)isMute
fromUserId:(NSString *)userId
nickName:(NSString *)nickName;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
isMute | BOOL | 静音或者取消静音 |
userId | NSString | 发出静音或者取消静音room的userId |
nickName | NSString | 发出静音或者取消静音room的的nickName |
本地用户接收到被静音或者取消静音回调
-(void)onAudioMuteFromUserWithIsMute:(BOOL)isMute
fromUserId:(NSString *)userId
nickName:(NSString *)nickName;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
isMute | BOOL | 静音或者取消静音 |
userId | NSString | 发送静音或者取消静音者的userId |
nickName | NSString | 发送静音或者取消静音者的nickName |
本地用户接收到向整个房间广播的禁止或者取消禁止房间视频回调
-(void)onForbidVideoToRoomWithIsForbid:(BOOL)isForbid
fromUserId:(NSString *)userId
nickName:(NSString *)nickName;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
isForbid | BOOL | 禁止或者取消禁止房间视频 |
userId | NSString | 发出关闭或取消关闭房间视频的userId |
nickName | NSString | 发出关闭或取消关闭房间视频的的nickName |
本地用户接收到被禁止或者取消禁止视频回调
-(void)onForbidVideoFromUserWithIsForbid:(BOOL)isForbid
fromUserId:(NSString *)userId
nickName:(NSString *)nickName;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
isForbid | BOOL | 禁止或者取消禁止房间某个userId的视频 |
userId | NSString | 发送关闭或取消关闭房间视频者的userId |
nickName | NSString | 发送关闭或取消关闭房间视频者peerId对应的nickName |
本地用户接收到向整个房间广播禁言回调
-(void)onForbiddenChatToRoomWithUserId:(NSString *)userId
nickName:(NSString *)nickName;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString | 禁言房间聊天发出者userId |
nickName | NSString | 禁言房间聊天发出者nickName |
本地用户接收到向整个房间取消禁言回调
-(void)onUnForbiddenChatToRoomWithUserId:(NSString *)userId
nickName:(NSString *)nickName;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSInteger | 关闭禁言房间聊天发出者userId |
nickName | NSString | 关闭禁言房间聊天发出者nickName |
本地用户接收到向整个房间广播的主持人结束会议回调
同一房间里所有人都会收到此回调
-(void)onHosterFinishMeeting;
本地用户接收到向整个房间广播的产生新的主持人回调
-(void)onNewHosterCreatedWithUserId:(NSString *)userId;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString | 新的主持人userId |
本地用户接收到向整个房间广播的自定义信令回调
同一房间里除了主持人,其他人都会收到此回调
-(void)onCustomSignalToRoomWithEventName:(NSString *)eventName
userId:(NSString *)userId
nickName:(NSString *)nickName
eventInfo:(NSString *)info;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
eventName | NSString | 自定义事件名称 |
userId | NSString | 发出自定义广播信令者的userId |
nickName | NSString | 发出自定义广播信令者的nickName |
info | NSDictionary | 自定义事件携带的信息,可以是普通字符串,也可以是可转化为json格式的字符串,客户端可根据自己需要获取相关信息 |
本地用户接收到发送给本地用户的自定义信令回调
-(void)onCustomSignalToUserWithEventName:(NSString *)eventName
userId:(NSString *)userId
nickName:(NSString *)nickName
eventInfo:(NSString *)info;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
eventName | NSString | 自定义事件名称 |
userId | NSString | 发出自定义信令者的userId |
nickName | NSString | 发出自定义信令者的nickName |
info | NSDictionary | 自定义事件携带的信息,可以是普通字符串,也可以是可转化为json格式的字符串,客户端可根据自己需要获取相关信息 |
有可以订阅的数据流
-(void)onDataStreamsAvailableWithStreamInfos:(NSArray *)streamInfos;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
streamInfos | NSArray | 数据流信息数组,包含格式为Dictionary的字典,字典中包含的key为userId与streamId,对应的值为NSString类型 |
订阅数据流成功回调
-(void)onSubedRemoteDataStreamWithUserId:(NSString *)userId
streamId:(NSString *)streamId;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString | 订阅成功的数据流对应的userId |
streamId | NSString | 订阅成功的数据流对应的streamId |
数据流消息回调
-(void)onUserDataMessageWithMessageModel:(JRTCDataStreamModel *)messageModel;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
messageModel | JRTCDataStreamModel | 消息对应的model |
数据流取消发布回调
-(void)onDataStreamClosedWithUserId:(NSString *)userId
streamId:(NSString *)streamId;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString | 数据流取消发布对应的userId |
streamId | NSString | 数据流取消发布对应的streamId |
屏幕扩展Ext停止共享屏幕事件回调
用户通过停止屏幕共享组件设置停止屏幕共享时,会触发此回调
-(void)onDataStreamClosedWithUserId:(NSString *)userId
streamId:(NSString *)streamId;
视频通话网络事件回调接口
当前网络连接类型回调
-(void)onNetType:(JRTC_NetWorkType)type;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
type | JRTC_NetWorkType | 当前网络连接类型 |
网络连接断开回调
触发这个回调后SDK内部会一直重新加入房间,直到有网后加入房间成功,然后会触发网络连接恢复
-(void)onNetStatusClose;
网络连接恢复回调
网络链接恢复后,App会收到加入房间成功及当前哪些流可以订阅的回调。
-(void)onNetStatusRecovery;
当前会议使用网卡发生变化回调
-(void)onNetIpChangeWithName:(NSString *)name ipAddress:(NSString *)ipaddress;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
name | NSString | 网络名称 |
ipaddress | NSString | 网卡IP地址 |
当前网络信号弱回调
-(void)onNetWeak;
视频通话消息大厅事件回调接口
消息大厅错误事件回调
-(void)messageOnErrorWithErrorCode:(NSInteger)errorCode errorState:(NSString *)errorState;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
errorCode | NSInteger | 错误码 |
errorState | NSString | 错误描述 |
消息大厅接收到广播事件回调
-(void)messageOnUserBroadcastMessageFromUserID:(NSString *)userId msg:(NSString *)msg;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString | 发送广播者userId |
msg | NSString | 消息内容 |
消息大厅接收到消息回调
-(void)messageOnUserSendMessageFromUserWithUserID:(NSString *)userId msg:(NSString *)msg;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString | 消息发送者userId |
msg | NSString | 消息内容 |
保存房间信息,包括加入房间鉴权认证所必须的信息
房间号
@property(nonatomic,strong)NSString *userRoomId;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
userRoomId | NSString | 是 | 房间号 |
用户昵称
@property(nonatomic,strong)NSString *nickName;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
nickName | NSString | 是 | 用户昵称 |
appId
@property(nonatomic,strong)NSString *appId;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
appId | NSString | 是 | 用户在JRTC控制台申请JRTC SDK 接入时,appId由JRTC控制台生成,必传 |
token
@property(nonatomic,strong)NSString *token
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
token | NSString | 是 | 用户在JRTC控制台申请JRTC SDK 接入时,token由JRTC控制台生成,必传 |
用户userId
@property(nonatomic,strong)NSString *userId;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
peerId | NSString | 是 | 第三方用户ID,必传 |
令牌随机码
@property(nonatomic,strong)NSString *nonce;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
nonce | NSString | 是 | 用户在JRTC控制台申请JRTC SDK 接入时,nonce由JRTC控制台生成,必传 |
令牌过期时间戳(毫秒)
@property(nonatomic,strong)NSString *timestamp
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
timestamp | NSString | 是 | 第三方用户生成,必传 |
保存消息信息
JRTC_MESSAGE_MODE
消息类型
typedef NS_ENUM(NSInteger, JRTC_MESSAGE_MODE) {
JRTC_MESSAGE_MODE_NORMAL = 0,
JRTC_MESSAGE_MODE_NEWSHALL = 1
};
枚举类型说明:
枚举类型 | 说明 |
---|---|
JRTC_MESSAGE_MODE_NORMAL | 普通消息类型 |
JRTC_MESSAGE_MODE_NEWSHALL | 消息大厅类型 |
消息发送者userId
@property(nonatomic,strong)NSString *fromUserId;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
fromUserId | NSString | 是 | 消息发送者UserID |
消息接受者userId
@property(nonatomic,strong)NSString *toUserId;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
toUserId | NSString | 是 | 消息接受者userID,为空时,为广播此条消息,不为空时为单聊 |
消息内容
@property(nonatomic,strong)NSString *msg;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
msg | NSString | 是 | 消息内容 |
消息类型
@property(nonatomic,assign)JRTC_MESSAGE_MODE messageMode;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
messageMode | JRTC_MESSAGE_MODE | 是 | 消息类型 |
所在房间
@property(nonatomic,strong)NSString *userRoomId;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
userRoomId | NSString | 是 | 所在房间 |
保存混流源数据信息
srcStreamId
@property(nonatomic,strong)NSString *srcStreamId;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
srcStreamId | NSString | 是 | 源流id |
srcStreamName
@property(nonatomic,strong)NSString *srcStreamName;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
srcStreamName | NSString | 是 | 源流名称 |
保存混流目标数据信息
destStreamId
@property(nonatomic,strong)NSString *destStreamId;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
destStreamId | NSString | 是 | 目标流id |
destStreamName
@property(nonatomic,strong)NSString *destStreamName;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
destStreamName | NSString | 非 | 目标流名称 |
streamLayout
@property(nonatomic,strong)NSString *streamLayout;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
streamLayout | NSString | 非 | 流布局:TILED(平铺),PIC-IN-PIC(画中画) |
kind
@property(nonatomic,strong)NSNumber *kind;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
kind | NSNumber | 是 | 1:音频 2:视频, 3:音视 |
codec
@property(nonatomic,strong)NSString *codec;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
codec | NSString | 非 | 编码格式 默认h264 |
bitrate
@property(nonatomic,strong)NSNumber *bitrate;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
bitrate | NSNumber | 非 | 码率 |
frame
@property(nonatomic,strong)NSNumber *frame;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
frame | NSNumber | 非 | 帧率 |
resolution
@property(nonatomic,strong)NSNumber *resolution;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
resolution | NSNumber | 非 | 分辨率 720,360 |
ext
@property(nonatomic,strong)NSString *ext;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
ext | NSString | 非 | 扩展参数 |
用于视频画面展示,继承自UIView
设置视频背景画面颜色
-(void)setBackGroundColorWithColor:(UIColor *)color;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
color | UIColor | 视频背景颜色 |
设置视频渲染帧率
-(void)setRenderFPS:(JRTC_VIDEO_RENDER_FPS)videoRenderFPS;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
videoRenderFPS | JRTC_VIDEO_RENDER_FPS | 视频渲染帧率,默认30帧 |
JRTC_VideoRotation
视频帧方向
typedef NS_ENUM(NSInteger, JRTC_VideoRotation) {
JRTC_VideoRotation_0 = 0,
JRTC_VideoRotation_90 = 1,
JRTC_VideoRotation_180 = 2,
JRTC_VideoRotation_270 = 3,
};
枚举类型说明:
枚举类型 | 说明 |
---|---|
JRTC_VideoRotation_0 | 视频帧方向为0度 |
JRTC_VideoRotation_90 | 视频帧方向为90度 |
JRTC_VideoRotation_180 | 视频帧方向为180度 |
JRTC_VideoRotation_270 | 视频帧方向为270度 |
用于视频帧角度记录
视频帧宽度
@property(nonatomic, assign) int width;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
width | int | 视频帧宽度 |
视频帧高度
@property(nonatomic, assign) int height;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
height | int | 视频帧高度 |
视频帧角度
@property(nonatomic, assign) JRTC_VideoRotation rotation;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
rotation | JRTC_VideoRotation | 视频帧角度 |
视频帧时间戳,纳秒
@property(nonatomic, assign) int64_t timeStampNs;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
timeStampNs | int64_t | 视频帧时间戳,纳秒 |
视频帧时间戳
@property(nonatomic, assign) int32_t timeStamp;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
timeStamp | int32_t | 视频帧时间戳 |
视频帧PixelBufferRef
@property(nonatomic, assign) CVPixelBufferRef buffer;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
buffer | CVPixelBufferRef | 视频帧PixelBufferRef |
是否是前置摄像头
@property(nonatomic, assign) BOOL isFrontCap;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
isFrontCap | BOOL | 是否是前置摄像头 |
用于记录网卡信息
网卡网络信号评分
@property(nonatomic,assign)CGFloat netScore;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
netScore | CGFloat | 分值越高,网络信号越好 |
网卡连接的wifi还是非wifi
@property(nonatomic,assign)BOOL isWifi;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
isWifi | assign | YES为wifi,NO为非wifi |
网卡ip地址
@property(nonatomic,strong)NSString *address;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
address | NSString | 网卡ip地址 |
用于记录字幕流事件信息
事件类型
@property(nonatomic,strong)NSString *eventType;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
eventType | NSString | 事件类型,为error时,客户端需特殊处理 |
错误码
@property(nonatomic,assign)NSInteger errCode;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
errCode | NSInteger | 错误码,只在eventType为error时有值 |
错误信息
@property(nonatomic,strong)NSString *errMsg;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
errMsg | NSString | 错误信息,只在eventType为error时有值 |
用于记录字幕流信息
JRTC_DATA_STRING_MESSAGE_TYPE
订阅字符返回字符串的类型
typedef NS_ENUM(NSInteger, JRTC_DATA_STRING_MESSAGE_TYPE) {
JRTC_DATA_STRING_MESSAGE_TYPE_APPEND = 0,
JRTC_DATA_STRING_MESSAGE_TYPE_REPLACE = 1,
};
枚举类型说明:
枚举类型 | 说明 |
---|---|
JRTC_DATA_STRING_MESSAGE_TYPE_APPEND | 追加 |
JRTC_DATA_STRING_MESSAGE_TYPE_REPLACE | 覆盖 |
用于客户端处理字幕拼接还是替换
JRTC_DATA_ACTION_TYPE
订阅字符返回的行为
typedef NS_ENUM(NSInteger, JRTC_DATA_ACTION_TYPE) {
JRTC_DATA_ACTION_TYPE_ASR = 0,
JRTC_DATA_ACTION_TYPE_EVENT = 1,
};
枚举类型说明:
枚举类型 | 说明 |
---|---|
JRTC_DATA_ACTION_TYPE_ASR | 正常消息 |
JRTC_DATA_ACTION_TYPE_EVENT | EVENT事件,此事件时可从JRTCDataStreamModel对象中获取eventInfo信息,非EVENT事件时,RTCDataStreamModel对象中获取eventInfo信息为nil |
用于客户端处理字幕消息是否是正常消息
订阅字幕返回的类型
@property(nonatomic,assign)JRTC_DATA_ACTION_TYPE actionType;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
actionType | JRTC_DATA_ACTION_TYPE | 订阅字幕返回的类型 |
订阅字符返回字符串的类型
@property(nonatomic,assign)JRTC_DATA_STRING_MESSAGE_TYPE msgStrType;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
msgStrType | JRTC_DATA_STRING_MESSAGE_TYPE | 订阅字符返回字符串的类型 |
字幕消息
@property(nonatomic,strong)NSString *msg;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
msg | NSString | 字幕消息 |
字幕消息对应的发送者userId
@property(nonatomic,strong)NSString *userId;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
userId | NSString | 字幕消息发送者userId |
字幕消息对应的streamId
@property(nonatomic,strong)NSString *streamId;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
streamId | NSString | 字幕消息对应的streamId |
字幕消息标签
@property(nonatomic,strong)NSString *label;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
label | NSString | 当前未使用,客户端不用使用此字段 |
字幕消息时间戳
@property(nonatomic,strong)NSNumber *reportTs;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
reportTs | NSNumber | 字幕消息时间戳 |
字幕消息事件信息
@property(nonatomic,strong)JRTCDataStreamEventInfoModel *eventInfo;
参数说明:
参数名 | 类型 | 说明 |
---|---|---|
eventInfo | JRTCDataStreamEventInfoModel | 字幕消息事件信息 |
JRTCCloudDef中声明各种枚举类型,及保存视频分辨率、帧率等信息的JRTCVideoEncParam类
发送消息Block回调
普通房间发送消息完成回调与消息大厅发送消息完成回调,都会走此回调
typedef void(^SendMessageBlock)(NSError *error,JRTCMessageModel *messageModel);
block说明:
block参数 | 类型 | 说明 |
---|---|---|
error | NSError | 发送失败信息 |
messageModel | JRTCMessageModel | 发送的消息 |
JRTC_VIDEO_STREAM_MODEL_TYPE
指定下发视频流类型
自动下发大小画面视频流,下发的视频流类型不一定为指定的视频流类型。
typedef NS_ENUM(NSInteger, JRTC_VIDEO_STREAM_MODEL_TYPE) {
JRTC_VIDEO_STREAM_MODEL_TYPE_AUTO = 1,
JRTC_VIDEO_STREAM_MODEL_TYPE_FIX = 2,
};
枚举类型说明:
枚举类型 | 说明 |
---|---|
JRTC_VIDEO_STREAM_MODEL_TYPE_AUTO | 自动下发大小画面视频流 |
JRTC_VIDEO_STREAM_MODEL_TYPE_FIX | 固定下发指定的大小画面视频流 |
JRTC_VIDEO_STREAM_TYPE
视频流类型
如果上行网络和性能比较好,则可以同时送出大小两路画面。
不支持单独开启小画面,小画面必须依附于主画面而存在。
typedef NS_ENUM(NSInteger, JRTC_VIDEO_STREAM_TYPE) {
JRTC_VIDEO_STREAM_TYPE_BIG = 1,
JRTC_VIDEO_STREAM_TYPE_SMALL = 0,
};
枚举类型说明:
枚举类型 | 说明 |
---|---|
JRTC_VIDEO_STREAM_TYPE_BIG | 大画面视频流,用来传输摄像头的视频数据 |
JRTC_VIDEO_STREAM_TYPE_SMALL | 小画面视频流,跟大画面的内容相同,但是分辨率和码率更低 |
JRTC_VIDEO_RESOLUTION
视频分辨率
typedef NS_ENUM(NSInteger, JRTC_VIDEO_RESOLUTION) {
JRTC_VIDEO_RESOLUTION_720P = 0,
JRTC_VIDEO_RESOLUTION_480P = 1,
JRTC_VIDEO_RESOLUTION_1080P = 2,
};
枚举类型说明:
枚举类型 | 说明 |
---|---|
JRTC_VIDEO_RESOLUTION_720P | 视频分辨率 720*1280,默认视频分辨率类型 |
JRTC_VIDEO_RESOLUTION_480P | 视频分辨率480*640 |
JRTC_VIDEO_RESOLUTION_1080P | 视频分辨率1080*1920 |
JRTC_VIDEO_RENDER_FPS
视频渲染FPS
typedef NS_ENUM(NSInteger, JRTC_VIDEO_RENDER_FPS) {
JRTC_VIDEO_RENDER_FPS_30 = 30,//
JRTC_VIDEO_RENDER_FPS_5 = 5,
JRTC_VIDEO_RENDER_FPS_10 = 10,
JRTC_VIDEO_RENDER_FPS_15 = 15,
JRTC_VIDEO_RENDER_FPS_20 = 20,
JRTC_VIDEO_RENDER_FPS_25 = 25,
};
枚举类型 | 说明 |
---|---|
JRTC_VIDEO_RENDER_FPS_30 | FPS为30,默认30 |
JRTC_VIDEO_RENDER_FPS_5 | FPS为5 |
JRTC_VIDEO_RENDER_FPS_10 | FPS为10 |
JRTC_VIDEO_RENDER_FPS_15 | FPS为15 |
JRTC_VIDEO_RENDER_FPS_20 | FPS为20 |
JRTC_VIDEO_RENDER_FPS_25 | FPS为15 |
JRTC_NetWorkType
网络类型
typedef NS_ENUM(NSInteger,JRTC_NetWorkType){
NET_WORK_TYPE_UNKNOWN,
NET_WORK_TYPE_ETHERNET,
NET_WORK_TYPE_WIFI,
NET_WORK_TYPE_CELLULAR,
NET_WORK_TYPE_VPN,
NET_WORK_TYPE_LOOPBACK,
NET_WORK_TYPE_ANY,
};
枚举类型 | 说明 |
---|---|
NET_WORK_TYPE_UNKNOWN | 未知网络类型 |
NET_WORK_TYPE_ETHERNET | 以太网 |
NET_WORK_TYPE_WIFI | Wi-Fi |
NET_WORK_TYPE_CELLULAR | 移动流量 |
NET_WORK_TYPE_VPN | VPN网络 |
NET_WORK_TYPE_WIFI | 本地网络 |
NET_WORK_TYPE_WIFI | 任意网络 |
JRTC_VIDEO_FPS
视频采集帧率
typedef NS_ENUM(NSInteger,JRTC_VIDEO_FPS) {
JRTC_VIDEO_FPS_15 = 0,
JRTC_VIDEO_FPS_20 = 1,
JRTC_VIDEO_FPS_25 = 2,
JRTC_VIDEO_FPS_30 = 3,
};
枚举类型 | 说明 |
---|---|
JRTC_VIDEO_FPS_15 | 频帧率枚举类型,15帧每秒,默认类型 |
JRTC_VIDEO_FPS_20 | 频帧率枚举类型,20帧每秒 |
JRTC_VIDEO_FPS_25 | 频帧率枚举类型,25帧每秒 |
JRTC_VIDEO_FPS_30 | 频帧率枚举类型,30帧每秒 |
JRTC_VIDEO_ENCODE_FPS
视频推流编码帧率
typedef NS_ENUM(NSInteger,JRTC_VIDEO_ENCODE_FPS) {
/*! 15*/
JRTC_VIDEO_ENCODE_FPS_15 = 0,
/*! 20*/
JRTC_VIDEO_ENCODE_FPS_20 = 1,
/*! 25*/
JRTC_VIDEO_ENCODE_FPS_25 = 2,
/*! 30*/
JRTC_VIDEO_ENCODE_FPS_30 = 3,
};
枚举类型 | 说明 |
---|---|
JRTC_VIDEO_ENCODE_FPS_15 | 视频推流编码帧率,15帧每秒,默认类型 |
JRTC_VIDEO_ENCODE_FPS_20 | 视频推流编码帧率,20帧每秒 |
JRTC_VIDEO_ENCODE_FPS_25 | 视频推流编码帧率,25帧每秒 |
JRTC_VIDEO_ENCODE_FPS_30 | 视频推流编码帧率,30帧每秒 |
JRTC_ERROR
旧错误类型
typedef NS_ENUM(NSInteger, JRTC_ERROR) {
JRTC_ERROR_CODE_NULL = 1,
JRTC_ERROR_CODE_HTTPHOST_INVALID = -110,
JRTC_ERROR_CODE_CONFIGPATH_INVALID = -111,
JRTC_ERROR_CODE_CONFIGSTRING_INVALID = -112,
JRTC_ERROR_CODE_ENTER_ROOM_ROOMID_INVALID = -121,
JRTC_ERROR_CODE_ENTER_ROOM_NICKNAME_INVALID = -123,
JRTC_ERROR_CODE_ENTER_ROOM_APPID_INVALID = -124,
JRTC_ERROR_CODE_ENTER_ROOM_TOKEN_INVALID = -125,
JRTC_ERROR_CODE_ENTER_ROOM_USERID_INVALID = -126,
JRTC_ERROR_CODE_ENTER_ROOM_NONCE_INVALID = -127,
JRTC_ERROR_CODE_ENTER_ROOM_TIMESTAMP_INVALID = -128,
JRTC_ERROR_CODE_ENTER_ROOM_HASJOINING_OR_JOINED_ERROR = -135,
JRTC_ERROR_CODE_INITJMSG_VER_INVALID = -150,
JRTC_ERROR_CODE_INITJMSG_ROOMID_INVALID = -151,
JRTC_ERROR_CODE_INITJMSG_NICKNAME_INVALID = -153,
JRTC_ERROR_CODE_INITJMSG_APPID_INVALID = -154,
JRTC_ERROR_CODE_INITJMSG_TOKEN_INVALID = -155,
JRTC_ERROR_CODE_INITJMSG_USERID_INVALID = -156,
JRTC_ERROR_CODE_INITJMSG_NONCE_INVALID = -157,
JRTC_ERROR_CODE_INITJMSG_TIMESTAMP_INVALID = -158,
JRTC_ERROR_CODE_INITJMSG_ROOMTYPE_INVALID = -159,
JRTC_ERROR_CODE_MUTEPEERAUDIO_ID_INVALID = -190,
JRTC_ERROR_CODE_FORBIDPEERVIDEO_ID_INVALID = -191,
JRTC_ERROR_CODE_STARTLOCALPREVIEW_VIEW_INVALID = -210,
JRTC_ERROR_CODE_STARTREMOTEVIDEO_VIDEOVIEW_INVALID = -220,
JRTC_ERROR_CODE_STARTREMOTEVIDEO_ID_INVALID = -221,
JRTC_ERROR_CODE_STARTREMOTEVIDEO_STREAMID_INVALID = -223,
JRTC_ERROR_CODE_STARTREMOTEVIDEO_MODEL_INVALID = -224,
JRTC_ERROR_CODE_STARTREMOTEVIDEO_TYPE_INVALID = -225,
JRTC_ERROR_CODE_STOPREMOTEVIDEO_ID_INVALID = -230,
JRTC_ERROR_CODE_STOPREMOTEVIDEO_STREAMID_INVALID = -231,
JRTC_ERROR_CODE_STOPRENDERREMOTE_USERID_INVALID = -234,
JRTC_ERROR_CODE_STOPRENDERREMOTE_STREAMID_INVALID = -236,
JRTC_ERROR_CODE_STOPRENDERREMOTE_VIDEOVIEW_INVALID = -238,
JRTC_ERROR_CODE_STARTREMOTEAUDIO_ID_INVALID = -240,
JRTC_ERROR_CODE_STARTREMOTEAUDIO_STREAMID_INVALID = -241,
JRTC_ERROR_CODE_STOPREMOTEAUDIO_ID_INVALID = -250,
JRTC_ERROR_CODE_STOPREMOTEAUDIO_STREAMID_INVALID = -251,
JRTC_ERROR_CODE_MUTEREMOTEVIDEO_STREAMID_INVALID = -260,
JRTC_ERROR_CODE_MUTEREMOTEAUDIO_STREAMID_INVALID = -261,
JRTC_ERROR_CODE_CHANGE_VIDEO_STREAM_INVALID = -263,
JRTC_ERROR_CODE_CHANGE_VIDEO_MODE_INVALID = -264,
JRTC_ERROR_CODE_CHANGE_VIDEO_TYPE_INVALID = -265,
JRTC_ERROR_CODE_CHANGE_VIDEO_SUBSTATUS_INVALID = -266,
JRTC_ERROR_CODE_CHANGE_VIDEO_NO_VIDEO_TYPE = -267,
JRTC_ERROR_CODE_STARTMIX_SRC_INVALID = -280,
JRTC_ERROR_CODE_STARTMIX_DES_INVALID = -281,
JRTC_ERROR_CODE_UPDATEMIX_SRC_INVALID = -282,
JRTC_ERROR_CODE_UPDATEMIX_DES_INVALID = -283,
JRTC_ERROR_CODE_CLOSEMIX_DES_INVALID = -284,
JRTC_ERROR_CODE_CHANGENICK_NICKNAME_INVALID = -300,
JRTC_ERROR_CODE_CANSUL_NOPUBLISHED_VIDEO = -340,
JRTC_ERROR_CODE_CANSUL_NOPUBLISHED_AUDIO = -341,
JRTC_ERROR_CODE_PUBLISHING_OR_PUBLISHED_VIDEO = -342,
JRTC_ERROR_CODE_PUBLISHING_OR_PUBLISHED_AUDIO = -343,
JRTC_ERROR_CODE_CANSUL_SUB_AUDIO = -350,
JRTC_ERROR_CODE_CANSUL_UNSUB_AUDIO = -351,
JRTC_ERROR_CODE_NO_INROOM = -360,
JRTC_ERROR_CODE_CUSTOMSIGNAL_TO_ROOM = -370,
JRTC_ERROR_CODE_JOIN_ROOM_STATE_ERROR = -1000,
JRTC_ERROR_CODE_JOIN_ROOM_PARAM_NULL = -1001,
JRTC_ERROR_CODE_JOIN_ROOM_INVALID_APP_ID = -1002,
JRTC_ERROR_CODE_JOIN_ROOM_INVALID_ROOM_ID = -1003,
JRTC_ERROR_CODE_JOIN_ROOM_INVALID_USER_ID = -1004,
JRTC_ERROR_CODE_JOIN_ROOM_INVALID_TOKEN = -1005,
JRTC_ERROR_CODE_JOIN_ROOM_REQUEST_TIMEOUT = -1006,
JRTC_ERROR_CODE_JOIN_ROOM_SERVICE_SUSPENDED = -1007,
JRTC_ERROR_CODE_JOIN_ROOM_NOT_EXIST = -1008,
JRTC_ERROR_CODE_JOIN_ROOM_FULL = -1009,
JRTC_ERROR_CODE_JOIN_ROOM_CONNECT_ERROR = -1010,
JRTC_ERROR_CODE_JOIN_ROOM_NETWORK_ERROR = -1011,
JRTC_ERROR_CODE_LEAVE_ROOM_REQUEST_TIMEOUT = -1100,
JRTC_ERROR_CODE_LEAVE_ROOM_INVALID_ROOM_ID = -1101,
JRTC_ERROR_CODE_SUBSCRIBE_STREAM = -1200,
JRTC_ERROR_CODE_PUBLISH_STREAM = -1201,
JRTC_ERROR_CODE_STREAM_ALREADY_PUBLISH = -1202,
JRTC_ERROR_CODE_PUBLISH_AUDIO_STREAM = -1203,
JRTC_ERROR_CODE_PUBLISH_VIDEO_STREAM = -1204,
JRTC_ERROR_CODE_SUBSCRBE_DATA_STREAM = -1205,
JRTC_ERROR_CODE_ROOM_CLOSE_BY_SERVER = -1206,
JRTC_ERROR_CODE_CREATE_VIDEO_PRODUCER = -1207,
JRTC_ERROR_CODE_CREATE_AUDIO_PRODUCER = -1208,
JRTC_ERROR_CODE_CREATE_SEND_TRANSPORT = -1209,
JRTC_ERROR_CODE_PAUSE_PRODUCER = -1210,
JRTC_ERROR_CODE_RESUME_PRODUCER = -1211,
JRTC_ERROR_CODE_PAUSE_CONSUMER = -1212,
JRTC_ERROR_CODE_RESUME_CONSUMER = -1213,
JRTC_ERROR_CODE_PUBLISH_AUDIO_STREAM_TIMEOUT = -1251,
JRTC_ERROR_CODE_PUBLISH_VIDEO_STREAM_TIMEOUT = -1252,
JRTC_ERROR_CODE_SUBSCRIBE_AUDIO_STREAM_TIMEOUT = -1253,
JRTC_ERROR_CODE_SUBSCRIBE_VEDIO_STREAM_TIMEOUT = -1254,
JRTC_ERROR_CODE_PUBLISH_SCREEN_VIDEO_STREAM_TIMEOUT = -1261,
JRTC_ERROR_CODE_CAMERA_START_FAIL = -1300,
JRTC_ERROR_CODE_CAMERA_NOT_AUTHORIZED = -1301,
JRTC_ERROR_CODE_CAMERA_SET_PARAM_FAIL = -1302,
JRTC_ERROR_CODE_CAMERA_OCCUPY = -1303,
JRTC_ERROR_CODE_MIC_START_FAIL = -1304,
JRTC_ERROR_CODE_MIC_NOT_AUTHORIZED = -1305,
JRTC_ERROR_CODE_MIC_SET_PARAM_FAIL = -1306,
JRTC_ERROR_CODE_MIC_OCCUPY = -1307,
JRTC_ERROR_CODE_MIC_STOP_FAIL = -1308,
JRTC_ERROR_CODE_SPEAKER_START_FAIL = -1309,
JRTC_ERROR_CODE_SPEAKER_SET_PARAM_FAIL = -1310,
JRTC_ERROR_CODE_SPEAKER_STOP_FAIL = -1311,
JRTC_ERROR_CODE_NETWORK = -1400,
JRTC_ERROR_CODE_NETWORK_REQUEST_TIMEOUT = -1401,
JRTC_ERROR_CODE_NETWORK_REQUEST_CLOSE = -1402,
JRTC_ERROR_CODE_SERVER_PARAMETER_INVALID = -1500,
JRTC_ERROR_CODE_UNAUTHORIZED_OPERATION = -1501,
JRTC_ERROR_CODE_PARAMETER_INVALID = -1502,
JRTC_ERROR_CODE_OBJECT_NOT_FOUND = -1503,
JRTC_ERROR_CODE_REQUEST_INVALID = -1504,
JRTC_ERROR_CODE_INTERNAL_ERROR = -1505,
JRTC_ERROR_CODE_REPEATE_SUBMISSION = -1506,
JRTC_ERROR_CODE_USER_NOT_FOUND = -1507,
JRTC_ERROR_CODE_SERVER_FORBIDDEN = -1508,
JRTC_ERROR_CODE_SEVER_SUB_EXCEED_LIMIT = -1520,
JRTC_ERROR_CODE_SEVER_PUBLISH_EXCEED_LIMIT = -1521,
JRTC_ERROR_CODE_VIDEO_ENCODE_FAIL = -1600,
JRTC_ERROR_CODE_UNSUPPORTED_RESOLUTION = -1601,
JRTC_ERROR_CODE_AUDIO_ENCODE_FAIL = -1602,
JRTC_ERROR_CODE_UNSUPPORTED_SAMPLERATE = -1603,
JRTC_ERROR_CODE_VIDEO_CONSUMER_DOWNGRADE = -1701,
JRTC_ERROR_CODE_CLOSE_PRODUCER = -1702,
};
枚举类型 | 说明 |
---|---|
JRTC_ERROR_CODE_NULL | 无错误 |
JRTC_ERROR_CODE_HTTPHOST_INVALID | 设置的HTTPHOST无效 |
JRTC_ERROR_CODE_CONFIGPATH_INVALID | 设置的SDK configPath无效 |
JRTC_ERROR_CODE_CONFIGSTRING_INVALID | 设置的SDK configString无效 |
JRTC_ERROR_CODE_ENTER_ROOM_ROOMID_INVALID | 进入房间roomId不正确 |
JRTC_ERROR_CODE_ENTER_ROOM_NICKNAME_INVALID | 进入房间nickName不正确 |
JRTC_ERROR_CODE_ENTER_ROOM_APPID_INVALID | 进入房间appId不正确 |
JRTC_ERROR_CODE_ENTER_ROOM_TOKEN_INVALID | 进入房间token不正确 |
JRTC_ERROR_CODE_ENTER_ROOM_USERID_INVALID | 进入房间userId不正确 |
JRTC_ERROR_CODE_ENTER_ROOM_NONCE_INVALID | 进入房间nonce不正确 |
JRTC_ERROR_CODE_ENTER_ROOM_TIMESTAMP_INVALID | 进入房间timestamp不正确 |
JRTC_ERROR_CODE_ENTER_ROOM_HASJOINING_OR_JOINED_ERROR | 已正在加进房间或已加入房间,再次加入房间错误 |
JRTC_ERROR_CODE_INITJMSG_VER_INVALID | 初始化消息大厅ver不正确 |
JRTC_ERROR_CODE_INITJMSG_ROOMID_INVALID | 初始化消息大厅roomId不正确 |
JRTC_ERROR_CODE_INITJMSG_NICKNAME_INVALID | 初始化消息大厅nickName不正确 |
JRTC_ERROR_CODE_INITJMSG_APPID_INVALID | 初始化消息大厅appId不正确 |
JRTC_ERROR_CODE_INITJMSG_TOKEN_INVALID | 初始化消息大厅token不正确 |
JRTC_ERROR_CODE_INITJMSG_USERID_INVALID | 初始化消息大厅userId不正确 |
JRTC_ERROR_CODE_INITJMSG_NONCE_INVALID | 初始化消息大厅nonce不正确 |
JRTC_ERROR_CODE_INITJMSG_TIMESTAMP_INVALID | 初始化消息大厅timestamp不正确 |
JRTC_ERROR_CODE_INITJMSG_ROOMTYPE_INVALID | 初始化消息大厅roomType不正确 |
JRTC_ERROR_CODE_MUTEPEERAUDIO_ID_INVALID | 被静音用户Id不正确 |
JRTC_ERROR_CODE_FORBIDPEERVIDEO_ID_INVALID | 禁止用户开视频Id不正确 |
JRTC_ERROR_CODE_STARTLOCALPREVIEW_VIEW_INVALID | 打开本地视频预览videoView不正确 |
JRTC_ERROR_CODE_STARTREMOTEVIDEO_VIDEOVIEW_INVALID | 订阅远端视频videoView不正确 |
JRTC_ERROR_CODE_STARTREMOTEVIDEO_ID_INVALID | 订阅远端视频Id不正确 |
JRTC_ERROR_CODE_STARTREMOTEVIDEO_STREAMID_INVALID | 订阅远端视频streamId不正确 |
JRTC_ERROR_CODE_STARTREMOTEVIDEO_MODEL_INVALID | 订阅远端视频MODEL不正确 |
JRTC_ERROR_CODE_STARTREMOTEVIDEO_TYPE_INVALID | 订阅远端视频TYPE不正确 |
JRTC_ERROR_CODE_STOPREMOTEVIDEO_ID_INVALID | 取消订阅远端视频Id不正确 |
JRTC_ERROR_CODE_STOPREMOTEVIDEO_STREAMID_INVALID | 取消订阅远端视频streamId不正确 |
JRTC_ERROR_CODE_STOPRENDERREMOTE_USERID_INVALID | 取消订阅远端视频userId不正确 |
JRTC_ERROR_CODE_STOPRENDERREMOTE_STREAMID_INVALID | 取消订阅远端视频streamId不正确 |
JRTC_ERROR_CODE_STOPRENDERREMOTE_VIDEOVIEW_INVALID | 取消渲染远端视频VIDEOVIEW不正确 |
JRTC_ERROR_CODE_STARTREMOTEAUDIO_ID_INVALID | 订阅远端音频Id不正确 |
JRTC_ERROR_CODE_STARTREMOTEAUDIO_STREAMID_INVALID | 订阅远端音频streamId不正确 |
JRTC_ERROR_CODE_STOPREMOTEAUDIO_ID_INVALID | 取消订阅远端音频Id不正确 |
JRTC_ERROR_CODE_STOPREMOTEAUDIO_STREAMID_INVALID | 取消订阅远端音频streamId不正确 |
JRTC_ERROR_CODE_MUTEREMOTEVIDEO_STREAMID_INVALID | 暂停、继续订阅远端视频streamId不正确 |
JRTC_ERROR_CODE_MUTEREMOTEAUDIO_STREAMID_INVALID | 暂停、继续订阅远端音频streamId不正确 |
JRTC_ERROR_CODE_CHANGE_VIDEO_STREAM_INVALID | 切换远端视频订阅streamId不正确 |
JRTC_ERROR_CODE_CHANGE_VIDEO_MODE_INVALID | 切换远端视频订阅mode不正确 |
JRTC_ERROR_CODE_CHANGE_VIDEO_TYPE_INVALID | 切换远端视频订阅type不正确 |
JRTC_ERROR_CODE_CHANGE_VIDEO_SUBSTATUS_INVALID | 当前视频流未订阅成功,禁止切换远端视频订阅 |
JRTC_ERROR_CODE_STARTMIX_SRC_INVALID | 开始混流源流信息列表不正确 |
JRTC_ERROR_CODE_STARTMIX_DES_INVALID | 开始混流混流结果不正确 |
JRTC_ERROR_CODE_UPDATEMIX_SRC_INVALID | 更新混流源流信息列表不正确 |
JRTC_ERROR_CODE_UPDATEMIX_DES_INVALID | 更新混流destStreamId不正确 |
JRTC_ERROR_CODE_CLOSEMIX_DES_INVALID | 关闭混流destStreamId不正确 |
JRTC_ERROR_CODE_CHANGENICK_NICKNAME_INVALID | 修改昵称nickName不正确 |
JRTC_ERROR_CODE_CANSUL_NOPUBLISHED_VIDEO | 没有可以取消的视频流 |
JRTC_ERROR_CODE_CANSUL_NOPUBLISHED_AUDIO | 没有可以取消的音频流 |
JRTC_ERROR_CODE_PUBLISHING_OR_PUBLISHED_VIDEO | 本地视频流正在发布或者已发布 |
JRTC_ERROR_CODE_PUBLISHING_OR_PUBLISHED_AUDIO | 本地音频流正在发布或者已发布 |
JRTC_ERROR_CODE_CANSUL_SUB_AUDIO | 大房间模式,不允许用户订阅音频流 |
JRTC_ERROR_CODE_CANSUL_UNSUB_AUDIO | 大房间模式,不允许用户取消订阅音频流 |
JRTC_ERROR_CODE_NO_INROOM | 没有加入房间,不允许此操作(如订阅、取消订阅远端音视频、发送聊天消息、禁言其他人等) |
JRTC_ERROR_CODE_CUSTOMSIGNAL_TO_ROOM | 向房间发送自定义信令,参数错误 |
JRTC_ERROR_CODE_JOIN_ROOM_STATE_ERROR | 进房间房间状态错误 |
JRTC_ERROR_CODE_JOIN_ROOM_PARAM_NULL | 进房间参数为空 |
JRTC_ERROR_CODE_JOIN_ROOM_INVALID_APP_ID | 进房参数appId不正确 |
JRTC_ERROR_CODE_JOIN_ROOM_INVALID_ROOM_ID | 进房参数roomId不正确 |
JRTC_ERROR_CODE_JOIN_ROOM_INVALID_USER_ID | 进房参数userId不正确 |
JRTC_ERROR_CODE_JOIN_ROOM_INVALID_TOKEN | 进房参数token不正确 |
JRTC_ERROR_CODE_JOIN_ROOM_REQUEST_TIMEOUT | 进入房间请求超时 |
JRTC_ERROR_CODE_JOIN_ROOM_SERVICE_SUSPENDED | 服务不可用 ,请检查是否欠费 |
JRTC_ERROR_CODE_JOIN_ROOM_NOT_EXIST | 房间不存在 |
JRTC_ERROR_CODE_JOIN_ROOM_FULL | 房间已满 |
JRTC_ERROR_CODE_JOIN_ROOM_CONNECT_ERROR | 加入房间连接失败 |
JRTC_ERROR_CODE_JOIN_ROOM_NETWORK_ERROR | 加入房间网络错误 |
JRTC_ERROR_CODE_LEAVE_ROOM_REQUEST_TIMEOUT | 离开房间请求超时 |
JRTC_ERROR_CODE_LEAVE_ROOM_INVALID_ROOM_ID | 离开房间请求参数roomId错误 |
JRTC_ERROR_CODE_SUBSCRIBE_STREAM | 订阅流失败 |
JRTC_ERROR_CODE_PUBLISH_STREAM | 发布流失败(没进入房间直接发布流) |
JRTC_ERROR_CODE_STREAM_ALREADY_PUBLISH | 流重复发布 |
JRTC_ERROR_CODE_PUBLISH_AUDIO_STREAM | 发布音频失败 |
JRTC_ERROR_CODE_PUBLISH_VIDEO_STREAM | 发布视频失败 |
JRTC_ERROR_CODE_SUBSCRBE_DATA_STREAM | 订阅字幕流失败,需客户端做相应提示或其它处理 |
JRTC_ERROR_CODE_ROOM_CLOSE_BY_SERVER | 房间被强制关闭(服务端关闭) |
JRTC_ERROR_CODE_CREATE_VIDEO_PRODUCER | 创建video producer失败 |
JRTC_ERROR_CODE_CREATE_AUDIO_PRODUCER | 创建audio producer失败 |
JRTC_ERROR_CODE_CREATE_SEND_TRANSPORT | 创建发送链路失败 |
JRTC_ERROR_CODE_PAUSE_PRODUCER | 暂停发布失败,,错误信息中包含一条或多条流信息,错误streamId以字典的形式保存在errorInfo中 |
JRTC_ERROR_CODE_RESUME_PRODUCER | 恢复发布失败,错误信息中包含一条或多条流信息,错误streamId以字典的形式保存在errorInfo中 |
JRTC_ERROR_CODE_PAUSE_CONSUMER | 暂停订阅失败,错误信息中包含一条或多条流信息,错误streamId以字典的形式保存在errorInfo中 |
JRTC_ERROR_CODE_RESUME_CONSUMER | 恢复订阅失败,错误信息中包含一条或多条流信息,错误streamId以字典的形式保存在errorInfo中 |
JRTC_ERROR_CODE_PUBLISH_AUDIO_STREAM_TIMEOUT | 发布音频流超时 |
JRTC_ERROR_CODE_PUBLISH_VIDEO_STREAM_TIMEOUT | 发布视频流超时 |
JRTC_ERROR_CODE_SUBSCRIBE_AUDIO_STREAM_TIMEOUT | 订阅音频流超时 |
JRTC_ERROR_CODE_SUBSCRIBE_VEDIO_STREAM_TIMEOUT | 订阅视频流超时 |
JRTC_ERROR_CODE_PUBLISH_SCREEN_VIDEO_STREAM_TIMEOUT | 发布屏幕共享视频流超时 |
JRTC_ERROR_CODE_CAMERA_START_FAIL | 打开摄像头失败,例如在 Windows 或 Mac 设备,摄像头的配置程序(驱动程序)异常,禁用后重新启用设备,或者重启机器,或者更新配置程序 |
JRTC_ERROR_CODE_CAMERA_NOT_AUTHORIZED | 摄像头设备未授权,通常在移动设备出现,可能是权限被用户拒绝了 |
JRTC_ERROR_CODE_CAMERA_SET_PARAM_FAIL | 摄像头参数设置出错(参数不支持或其它) |
JRTC_ERROR_CODE_CAMERA_OCCUPY | 摄像头正在被占用中,可尝试打开其他摄像头 |
JRTC_ERROR_CODE_MIC_START_FAIL | 打开麦克风失败,例如在 Windows 或 Mac 设备,麦克风的配置程序(驱动程序)异常,禁用后重新启用设备,或者重启机器,或者更新配置程序 |
JRTC_ERROR_CODE_MIC_NOT_AUTHORIZED | 麦克风设备未授权,通常在移动设备出现,可能是权限被用户拒绝了 |
JRTC_ERROR_CODE_MIC_SET_PARAM_FAIL | 麦克风设置参数失败 |
JRTC_ERROR_CODE_MIC_OCCUPY | 麦克风正在被占用中,例如移动设备正在通话时,打开麦克风会失败 |
JRTC_ERROR_CODE_MIC_STOP_FAIL | 停止麦克风失败 |
JRTC_ERROR_CODE_SPEAKER_START_FAIL | 打开扬声器失败,例如在 Windows 或 Mac 设备,扬声器的配置程序(驱动程序)异常,禁用后重新启用设备,或者重启机器,或者更新配置程序 |
JRTC_ERROR_CODE_SPEAKER_SET_PARAM_FAIL | 扬声器设置参数失败 |
JRTC_ERROR_CODE_SPEAKER_STOP_FAIL | 停止扬声器失败 |
JRTC_ERROR_CODE_NETWORK | 设备已连接网络,但网络连接异常 |
JRTC_ERROR_CODE_NETWORK_REQUEST_TIMEOUT | 网络请求超时 |
JRTC_ERROR_CODE_NETWORK_REQUEST_CLOSE | 信令服务主动关闭请求,被踢 |
JRTC_ERROR_CODE_SERVER_PARAMETER_INVALID | 服务端返回参数错误 |
JRTC_ERROR_CODE_UNAUTHORIZED_OPERATION | 无权操作 |
JRTC_ERROR_CODE_PARAMETER_INVALID | 参数错误 |
JRTC_ERROR_CODE_OBJECT_NOT_FOUND | 找不到对象 |
JRTC_ERROR_CODE_REQUEST_INVALID | 请求错误 |
JRTC_ERROR_CODE_INTERNAL_ERROR | 内部错误 |
JRTC_ERROR_CODE_REPEATE_SUBMISSION | 重复提交 |
JRTC_ERROR_CODE_USER_NOT_FOUND | 未找到目标用户 |
JRTC_ERROR_CODE_SERVER_FORBIDDEN | 服务端拒绝连接 |
JRTC_ERROR_CODE_SEVER_SUB_EXCEED_LIMIT | 订阅超过最大数,SDK内部会停止订阅相应的视频流 |
JRTC_ERROR_CODE_SEVER_PUBLISH_EXCEED_LIMIT | 发布超过最大数,返回给客户端发布失败的流信息 |
JRTC_ERROR_CODE_VIDEO_ENCODE_FAIL | 视频帧编码失败,例如 iOS 设备切换到其他应用时,硬编码器可能被系统释放,再切换回来时,硬编码器重启前,可能会抛出 |
JRTC_ERROR_CODE_UNSUPPORTED_RESOLUTION | 不支持的视频分辨率 |
JRTC_ERROR_CODE_AUDIO_ENCODE_FAIL | 音频帧编码失败,例如传入自定义音频数据,SDK 无法处理 |
JRTC_ERROR_CODE_UNSUPPORTED_SAMPLERATE | 不支持的音频采样率 |
JRTC_ERROR_CODE_VIDEO_CONSUMER_DOWNGRADE | 视频降级,服务端不会发布视频流给客户端,客户端需相应的提示 |
JRTC_ERROR_CODE_CLOSE_PRODUCER | 通知客户端关闭指定Producer,SDK内部会根据相关信息,停止发布视频流或者音频流或者屏幕共享流,需客户端做相应的UI处理 |
JRTC_V2_ERROR
新错误码与老错误码现在共存,如果需要,请使用新的错误码
typedef NS_ENUM(NSInteger, JRTC_V2_ERROR) {
JRTC_V2_ERROR_CODE_NULL = 1,
JRTC_V2_ERROR_CODE_HTTPHOST_INVALID = 21000050,
JRTC_V2_ERROR_CODE_CONFIGPATH_INVALID = 21000051,
JRTC_V2_ERROR_CODE_CONFIGSTRING_INVALID = 21000052,
JRTC_V2_ERROR_CODE_ENTER_ROOM_ROOMID_INVALID = 21005050,
JRTC_V2_ERROR_CODE_ENTER_ROOM_NICKNAME_INVALID = 21005052,
JRTC_V2_ERROR_CODE_ENTER_ROOM_APPID_INVALID = 21005053,
JRTC_V2_ERROR_CODE_ENTER_ROOM_TOKEN_INVALID = 21005054,
JRTC_V2_ERROR_CODE_ENTER_ROOM_USERID_INVALID = 21005055,
JRTC_V2_ERROR_CODE_ENTER_ROOM_NONCE_INVALID = 21005056,
JRTC_V2_ERROR_CODE_ENTER_ROOM_TIMESTAMP_INVALID = 21005057,
JRTC_V2_ERROR_CODE_ENTER_ROOM_HASJOINING_OR_JOINED_ERROR = 21005062,
JRTC_V2_ERROR_CODE_INITJMSG_ROOMID_INVALID = 21010050,
JRTC_V2_ERROR_CODE_INITJMSG_NICKNAME_INVALID = 21010052,
JRTC_V2_ERROR_CODE_INITJMSG_APPID_INVALID = 21010053,
JRTC_V2_ERROR_CODE_INITJMSG_TOKEN_INVALID = 21010054,
JRTC_V2_ERROR_CODE_INITJMSG_USERID_INVALID = 21010055,
JRTC_V2_ERROR_CODE_INITJMSG_NONCE_INVALID = 21010056,
JRTC_V2_ERROR_CODE_INITJMSG_TIMESTAMP_INVALID = 21010057,
JRTC_V2_ERROR_CODE_INITJMSG_ROOMTYPE_INVALID = 21010058,
JRTC_V2_ERROR_CODE_MUTEPEERAUDIO_ID_INVALID = 21015050,
JRTC_V2_ERROR_CODE_FORBIDPEERVIDEO_ID_INVALID = 21015051,
JRTC_V2_ERROR_CODE_CUSTOMSIGNAL_TO_ROOM = 21015070,
JRTC_V2_ERROR_CODE_STARTLOCALPREVIEW_VIEW_INVALID = 21020050,
JRTC_V2_ERROR_CODE_STARTREMOTEVIDEO_VIDEOVIEW_INVALID = 21025050,
JRTC_V2_ERROR_CODE_STARTREMOTEVIDEO_ID_INVALID = 21025051,
JRTC_V2_ERROR_CODE_STARTREMOTEVIDEO_STREAMID_INVALID = 21025052,
JRTC_V2_ERROR_CODE_STARTREMOTEVIDEO_MODEL_INVALID = 21025053,
JRTC_V2_ERROR_CODE_STARTREMOTEVIDEO_TYPE_INVALID = 21025054,
JRTC_V2_ERROR_CODE_STOPREMOTEVIDEO_ID_INVALID = 21025080,
JRTC_V2_ERROR_CODE_STOPREMOTEVIDEO_STREAMID_INVALID = 21025081,
JRTC_V2_ERROR_CODE_STOPRENDERREMOTE_USERID_INVALID = 21025082,
JRTC_V2_ERROR_CODE_STOPRENDERREMOTE_STREAMID_INVALID = 21025083,
JRTC_V2_ERROR_CODE_STOPRENDERREMOTE_VIDEOVIEW_INVALID = 21025084,
JRTC_V2_ERROR_CODE_STARTREMOTEAUDIO_ID_INVALID = 21030050,
JRTC_V2_ERROR_CODE_STARTREMOTEAUDIO_STREAMID_INVALID = 21030051,
JRTC_V2_ERROR_CODE_STOPREMOTEAUDIO_ID_INVALID = 21030060,
JRTC_V2_ERROR_CODE_STOPREMOTEAUDIO_STREAMID_INVALID = 21030061,
JRTC_V2_ERROR_CODE_MUTEREMOTEVIDEO_STREAMID_INVALID = 21035050,
JRTC_V2_ERROR_CODE_MUTEREMOTEAUDIO_STREAMID_INVALID = 21035060,
JRTC_V2_ERROR_CODE_CHANGE_VIDEO_STREAM_INVALID = 21040051,
JRTC_V2_ERROR_CODE_CHANGE_VIDEO_MODE_INVALID = 21040052,
JRTC_V2_ERROR_CODE_CHANGE_VIDEO_TYPE_INVALID = 21040053,
JRTC_V2_ERROR_CODE_CHANGE_VIDEO_SUBSTATUS_INVALID = 21040054,
JRTC_V2_ERROR_CODE_CHANGE_VIDEO_NO_VIDEO_TYPE = 21040055,
JRTC_V2_ERROR_CODE_STARTMIX_SRC_INVALID = 21045050,
JRTC_V2_ERROR_CODE_STARTMIX_DES_INVALID = 21045051,
JRTC_V2_ERROR_CODE_UPDATEMIX_SRC_INVALID = 21045052,
JRTC_V2_ERROR_CODE_UPDATEMIX_DES_INVALID = 21045053,
JRTC_V2_ERROR_CODE_CLOSEMIX_DES_INVALID = 21045054,
JRTC_V2_ERROR_CODE_CHANGENICK_NICKNAME_INVALID = 21050050,
JRTC_V2_ERROR_CODE_ENABLESTREAMSTAT_INTERVALSEC_INVALID = 21055050,
JRTC_V2_ERROR_CODE_CANSUL_SUB_AUDIO = 21060050,
JRTC_V2_ERROR_CODE_CANSUL_UNSUB_AUDIO = 21060060,
JRTC_V2_ERROR_CODE_NO_INROOM = 21070050,
JRTC_V2_ERROR_CODE_PUBLISH_AUDIO_STREAM_TIMEOUT = 21080050,
JRTC_V2_ERROR_CODE_PUBLISH_VIDEO_STREAM_TIMEOUT = 21080051,
JRTC_V2_ERROR_CODE_SUBSCRIBE_AUDIO_STREAM_TIMEOUT = 21080080,
JRTC_V2_ERROR_CODE_SUBSCRIBE_VEDIO_STREAM_TIMEOUT = 21080081,
JRTC_V2_ERROR_CODE_PUBLISH_SCREEN_VIDEO_STREAM_TIMEOUT = 21080061,
JRTC_V2_ERROR_CODE_JOIN_ROOM_STATE_ERROR = 10001001,
JRTC_V2_ERROR_CODE_JOIN_ROOM_PARAM_NULL = -1001,
JRTC_V2_ERROR_CODE_JOIN_ROOM_REQUEST_TIMEOUT = -1006,
JRTC_V2_ERROR_CODE_JOIN_ROOM_SERVICE_SUSPENDED = -1007,
JRTC_V2_ERROR_CODE_JOIN_ROOM_NOT_EXIST = -1008,
JRTC_V2_ERROR_CODE_JOIN_ROOM_FULL = -1009,
JRTC_V2_ERROR_CODE_JOIN_ROOM_CONNECT_ERROR = 10001002,
JRTC_V2_ERROR_CODE_JOIN_ROOM_NETWORK_ERROR = 10001003,
JRTC_V2_ERROR_CODE_LEAVE_ROOM_REQUEST_TIMEOUT = 10002001,
JRTC_V2_ERROR_CODE_LEAVE_ROOM_INVALID_ROOM_ID = 10002002,
JRTC_V2_ERROR_CODE_SUBSCRIBE_STREAM = 10003001,
JRTC_V2_ERROR_CODE_SEVER_SUB_EXCEED_LIMIT = 10003002,
JRTC_V2_ERROR_CODE_PUBLISH_STREAM = 10004001,
JRTC_V2_ERROR_CODE_STREAM_ALREADY_PUBLISH = 10004002,
JRTC_V2_ERROR_CODE_PUBLISH_AUDIO_STREAM = 10004003,
JRTC_V2_ERROR_CODE_PUBLISH_VIDEO_STREAM = 10004004,
JRTC_V2_ERROR_CODE_SUBSCRBE_DATA_STREAM = 10004005,
JRTC_V2_ERROR_CODE_ROOM_CLOSE_BY_SERVER = 10004006,
JRTC_V2_ERROR_CODE_CREATE_VIDEO_PRODUCER = 10004007,
JRTC_V2_ERROR_CODE_CREATE_AUDIO_PRODUCER = 10004008,
JRTC_V2_ERROR_CODE_CREATE_SEND_TRANSPORT = 10004009,
JRTC_V2_ERROR_CODE_SEVER_PUBLISH_EXCEED_LIMIT = 10004010,
JRTC_V2_ERROR_CODE_CAMERA_START_FAIL = -1300,
JRTC_V2_ERROR_CODE_CAMERA_NOT_AUTHORIZED = -1301,
JRTC_V2_ERROR_CODE_CAMERA_SET_PARAM_FAIL = -1302,
JRTC_V2_ERROR_CODE_CAMERA_OCCUPY = -1303,
JRTC_V2_ERROR_CODE_MIC_START_FAIL = -1304,
JRTC_V2_ERROR_CODE_MIC_NOT_AUTHORIZED = -1305,
JRTC_V2_ERROR_CODE_MIC_SET_PARAM_FAIL = -1306,
JRTC_V2_ERROR_CODE_MIC_OCCUPY = -1307,
JRTC_V2_ERROR_CODE_MIC_STOP_FAIL = -1308,
JRTC_V2_ERROR_CODE_SPEAKER_START_FAIL = -1309,
JRTC_V2_ERROR_CODE_SPEAKER_SET_PARAM_FAIL = -1310,
JRTC_V2_ERROR_CODE_SPEAKER_STOP_FAIL = -1311,
JRTC_V2_ERROR_CODE_NETWORK = 10005001,
JRTC_V2_ERROR_CODE_NETWORK_REQUEST_TIMEOUT = 10005002,
JRTC_V2_ERROR_CODE_NETWORK_REQUEST_CLOSE = 10005003,
JRTC_V2_ERROR_CODE_SERVER_PARAMETER_INVALID = 10006001,
JRTC_V2_ERROR_CODE_UNAUTHORIZED_OPERATION = 10006002,
JRTC_V2_ERROR_CODE_PARAMETER_INVALID = 10006003,
JRTC_V2_ERROR_CODE_OBJECT_NOT_FOUND = 10006004,
JRTC_V2_ERROR_CODE_REQUEST_INVALID = 10006005,
JRTC_V2_ERROR_CODE_INTERNAL_ERROR = 10006006,
JRTC_V2_ERROR_CODE_REPEATE_SUBMISSION = 10006007,
JRTC_V2_ERROR_CODE_USER_NOT_FOUND = 10006008,
JRTC_V2_ERROR_CODE_SERVER_FORBIDDEN = 10006009,
JRTC_V2_ERROR_CODE_VIDEO_ENCODE_FAIL = -1600,
JRTC_V2_ERROR_CODE_UNSUPPORTED_RESOLUTION = -1601,
JRTC_V2_ERROR_CODE_AUDIO_ENCODE_FAIL = -1602,
JRTC_V2_ERROR_CODE_UNSUPPORTED_SAMPLERATE = -1603,
JRTC_V2_ERROR_CODE_VIDEO_CONSUMER_DOWNGRADE = 10007001,
JRTC_V2_ERROR_CODE_CLOSE_PRODUCER = 10008001,
};
枚举类型说明:
枚举类型 | 说明 |
---|---|
JRTC_V2_ERROR_CODE_NULL | 无错误 |
JRTC_V2_ERROR_CODE_HTTPHOST_INVALID | 设置的HTTPHOST无效 |
JRTC_V2_ERROR_CODE_CONFIGPATH_INVALID | 设置的SDK configPath无效 |
JRTC_V2_ERROR_CODE_CONFIGSTRING_INVALID | 设置的SDK configString无效 |
JRTC_V2_ERROR_CODE_ENTER_ROOM_ROOMID_INVALID | 进入房间roomId不正确 |
JRTC_V2_ERROR_CODE_ENTER_ROOM_NICKNAME_INVALID | 进入房间nickName不正确 |
JRTC_V2_ERROR_CODE_ENTER_ROOM_APPID_INVALID | 进入房间appId不正确 |
JRTC_V2_ERROR_CODE_ENTER_ROOM_TOKEN_INVALID | 进入房间token不正确 |
JRTC_V2_ERROR_CODE_ENTER_ROOM_USERID_INVALID | 进入房间userId不正确 |
JRTC_V2_ERROR_CODE_ENTER_ROOM_NONCE_INVALID | 进入房间nonce不正确 |
JRTC_V2_ERROR_CODE_ENTER_ROOM_TIMESTAMP_INVALID | 进入房间timestamp不正确 |
JRTC_V2_ERROR_CODE_ENTER_ROOM_HASJOINING_OR_JOINED_ERROR | 正在加进房间或已加入房间,再次加入房间错误 |
JRTC_V2_ERROR_CODE_INITJMSG_ROOMID_INVALID | 初始化消息大厅roomId不正确 |
JRTC_V2_ERROR_CODE_INITJMSG_NICKNAME_INVALID | 初始化消息大厅nickName不正确 |
JRTC_V2_ERROR_CODE_INITJMSG_APPID_INVALID | 初始化消息大厅appId不正确 |
JRTC_V2_ERROR_CODE_INITJMSG_TOKEN_INVALID | 初始化消息大厅token不正确 |
JRTC_V2_ERROR_CODE_INITJMSG_USERID_INVALID | 初始化消息大厅userId不正确 |
JRTC_V2_ERROR_CODE_INITJMSG_NONCE_INVALID | 初始化消息大厅nonce不正确 |
JRTC_V2_ERROR_CODE_INITJMSG_TIMESTAMP_INVALID | 初始化消息大厅timestamp不正确 |
JRTC_V2_ERROR_CODE_INITJMSG_ROOMTYPE_INVALID | 初始化消息大厅roomType不正确 |
JRTC_V2_ERROR_CODE_MUTEPEERAUDIO_ID_INVALID | 被静音用户Id不正确 |
JRTC_V2_ERROR_CODE_FORBIDPEERVIDEO_ID_INVALID | 禁止用户开视频Id不正确 |
JRTC_V2_ERROR_CODE_CUSTOMSIGNAL_TO_ROOM | 向房间发送自定义信令,参数错误 |
JRTC_V2_ERROR_CODE_STARTLOCALPREVIEW_VIEW_INVALID | 打开本地视频预览videoView不正确 |
JRTC_V2_ERROR_CODE_STARTREMOTEVIDEO_VIDEOVIEW_INVALID | 订阅远端视频videoView不正确 |
JRTC_V2_ERROR_CODE_STARTREMOTEVIDEO_ID_INVALID | 订阅远端视频Id不正确 |
JRTC_V2_ERROR_CODE_STARTREMOTEVIDEO_STREAMID_INVALID | 订阅远端视频streamId不正确 |
JRTC_V2_ERROR_CODE_STARTREMOTEVIDEO_MODEL_INVALID | 订阅远端视频MODEL不正确 |
JRTC_V2_ERROR_CODE_STARTREMOTEVIDEO_TYPE_INVALID | 订阅远端视频TYPE不正确 |
JRTC_V2_ERROR_CODE_STOPREMOTEVIDEO_ID_INVALID | 取消订阅远端视频用户Id不正确 |
JRTC_V2_ERROR_CODE_STOPREMOTEVIDEO_STREAMID_INVALID | 取消订阅远端视频streamId不正确 |
JRTC_V2_ERROR_CODE_STOPRENDERREMOTE_USERID_INVALID | 取消订阅远端视频userId不正确 |
JRTC_V2_ERROR_CODE_STOPRENDERREMOTE_STREAMID_INVALID | 取消订阅远端视频streamId不正确 |
JRTC_V2_ERROR_CODE_STOPRENDERREMOTE_VIDEOVIEW_INVALID | 取消渲染远端视频VIDEOVIEW不正确 |
JRTC_V2_ERROR_CODE_STARTREMOTEAUDIO_ID_INVALID | 订阅远端音频用户Id不正确 |
JRTC_V2_ERROR_CODE_STARTREMOTEAUDIO_STREAMID_INVALID | 订阅远端音频streamId不正确 |
JRTC_V2_ERROR_CODE_STOPREMOTEAUDIO_ID_INVALID | 取消订阅远端音频用户Id不正确 |
JRTC_V2_ERROR_CODE_STOPREMOTEAUDIO_STREAMID_INVALID | 取消订阅远端音频streamId不正确 |
JRTC_V2_ERROR_CODE_MUTEREMOTEVIDEO_STREAMID_INVALID | 暂停、继续订阅远端视频streamId不正确 |
JRTC_V2_ERROR_CODE_MUTEREMOTEAUDIO_STREAMID_INVALID | 暂停、继续订阅远端音频streamId不正确 |
JRTC_V2_ERROR_CODE_CHANGE_VIDEO_STREAM_INVALID | 切换远端视频订阅streamId不正确 |
JRTC_V2_ERROR_CODE_CHANGE_VIDEO_MODE_INVALID | 切换远端视频订阅mode不正确 |
JRTC_V2_ERROR_CODE_CHANGE_VIDEO_TYPE_INVALID | 切换远端视频订阅type不正确 |
JRTC_V2_ERROR_CODE_CHANGE_VIDEO_SUBSTATUS_INVALID | 当前视频流未订阅成功,禁止切换远端视频订阅 |
JRTC_V2_ERROR_CODE_CHANGE_VIDEO_NO_VIDEO_TYPE | 当前切换的流为非视频流 |
JRTC_V2_ERROR_CODE_STARTMIX_SRC_INVALID | 开始混流源流信息列表不正确 |
JRTC_V2_ERROR_CODE_STARTMIX_DES_INVALID | 开始混流混流结果不正确 |
JRTC_V2_ERROR_CODE_UPDATEMIX_SRC_INVALID | 更新混流源流信息列表不正确 |
JRTC_V2_ERROR_CODE_UPDATEMIX_DES_INVALID | 更新混流destStreamId不正确 |
JRTC_V2_ERROR_CODE_CLOSEMIX_DES_INVALID | 关闭混流destStreamId不正确 |
JRTC_V2_ERROR_CODE_CHANGENICK_NICKNAME_INVALID | 修改昵称nickName不正确 |
JRTC_V2_ERROR_CODE_ENABLESTREAMSTAT_INTERVALSEC_INVALID | 开启、关闭监控intervalSec不正确 |
JRTC_V2_ERROR_CODE_CANSUL_SUB_AUDIO | 大房间模式,不允许用户订阅音频流 |
JRTC_V2_ERROR_CODE_CANSUL_UNSUB_AUDIO | 大房间模式,不允许用户取消订阅音频流 |
JRTC_V2_ERROR_CODE_NO_INROOM | 没有加入房间,操作失败(没有加入房间,不允许此操作,如订阅、取消订阅远端音视频、发送聊天消息、禁言其他人等) |
JRTC_V2_ERROR_CODE_PUBLISH_AUDIO_STREAM_TIMEOUT | 发布音频流超时 |
JRTC_V2_ERROR_CODE_PUBLISH_VIDEO_STREAM_TIMEOUT | 发布视频流超时 |
JRTC_V2_ERROR_CODE_SUBSCRIBE_AUDIO_STREAM_TIMEOUT | 订阅音频流超时 |
JRTC_V2_ERROR_CODE_SUBSCRIBE_VEDIO_STREAM_TIMEOUT | 订阅视频流超时 |
JRTC_V2_ERROR_CODE_PUBLISH_SCREEN_VIDEO_STREAM_TIMEOUT | 发布共享视频流超时 |
JRTC_V2_ERROR_CODE_JOIN_ROOM_STATE_ERROR | 进房间房间状态错误 |
JRTC_V2_ERROR_CODE_JOIN_ROOM_PARAM_NULL | 进房间参数为空 |
JRTC_V2_ERROR_CODE_JOIN_ROOM_REQUEST_TIMEOUT | 进入房间请求超时 |
JRTC_V2_ERROR_CODE_JOIN_ROOM_SERVICE_SUSPENDED | 服务不可用 ,请检查是否欠费 |
JRTC_V2_ERROR_CODE_JOIN_ROOM_NOT_EXIST | 房间不存在 |
JRTC_V2_ERROR_CODE_JOIN_ROOM_FULL | 房间已满 |
JRTC_V2_ERROR_CODE_JOIN_ROOM_CONNECT_ERROR | 加入房间连接失败 |
JRTC_V2_ERROR_CODE_JOIN_ROOM_NETWORK_ERROR | 加入房间网络错误 |
JRTC_V2_ERROR_CODE_LEAVE_ROOM_REQUEST_TIMEOUT | 离开房间请求超时 |
JRTC_V2_ERROR_CODE_LEAVE_ROOM_INVALID_ROOM_ID | 离开房间请求参数roomId错误 |
JRTC_V2_ERROR_CODE_SUBSCRIBE_STREAM | 订阅流失败 |
JRTC_V2_ERROR_CODE_SEVER_SUB_EXCEED_LIMIT | 订阅超过最大数,SDK内部会停止订阅相应的视频流 |
JRTC_V2_ERROR_CODE_PUBLISH_STREAM | 发布流失败(没进入房间直接发布流) |
JRTC_V2_ERROR_CODE_STREAM_ALREADY_PUBLISH | 流重复发布 |
JRTC_V2_ERROR_CODE_PUBLISH_AUDIO_STREAM | 发布音频失败 |
JRTC_V2_ERROR_CODE_PUBLISH_VIDEO_STREAM | 发布视频失败 |
JRTC_V2_ERROR_CODE_SUBSCRBE_DATA_STREAM | 订阅字幕流失败,需客户端做相应提示或其它处理 |
JRTC_V2_ERROR_CODE_ROOM_CLOSE_BY_SERVER | 房间被强制关闭(服务端关闭) |
JRTC_V2_ERROR_CODE_CREATE_VIDEO_PRODUCER | 创建video producer失败 |
JRTC_V2_ERROR_CODE_CREATE_AUDIO_PRODUCER | 创建audio producer失败 |
JRTC_V2_ERROR_CODE_CREATE_SEND_TRANSPORT | 创建发送链路失败 |
JRTC_V2_ERROR_CODE_SEVER_PUBLISH_EXCEED_LIMIT | 发布超过最大数,返回给客户端发布失败的流信息 |
JRTC_V2_ERROR_CODE_CAMERA_START_FAIL | 打开摄像头失败,例如在 Windows 或 Mac 设备,摄像头的配置程序(驱动程序)异常,禁用后重新启用设备,或者重启机器,或者更新配置程序 |
JRTC_V2_ERROR_CODE_CAMERA_NOT_AUTHORIZED | 摄像头设备未授权,通常在移动设备出现,可能是权限被用户拒绝了 |
JRTC_V2_ERROR_CODE_CAMERA_SET_PARAM_FAIL | 摄像头参数设置出错(参数不支持或其它) |
JRTC_V2_ERROR_CODE_CAMERA_OCCUPY | 摄像头正在被占用中,可尝试打开其他摄像头 |
JRTC_V2_ERROR_CODE_MIC_START_FAIL | 打开麦克风失败,例如在 Windows 或 Mac 设备,麦克风的配置程序(驱动程序)异常,禁用后重新启用设备,或者重启机器,或者更新配置程序 |
JRTC_V2_ERROR_CODE_MIC_NOT_AUTHORIZED | 麦克风设备未授权,通常在移动设备出现,可能是权限被用户拒绝了 |
JRTC_V2_ERROR_CODE_MIC_SET_PARAM_FAIL | 麦克风设置参数失败 |
JRTC_V2_ERROR_CODE_MIC_OCCUPY | 麦克风正在被占用中,例如移动设备正在通话时,打开麦克风会失败 |
JRTC_V2_ERROR_CODE_MIC_STOP_FAIL | 停止麦克风失败 |
JRTC_V2_ERROR_CODE_SPEAKER_START_FAIL | 打开扬声器失败,例如在 Windows 或 Mac 设备,扬声器的配置程序(驱动程序)异常,禁用后重新启用设备,或者重启机器,或者更新配置程序 |
JRTC_V2_ERROR_CODE_SPEAKER_SET_PARAM_FAIL | 扬声器设置参数失败 |
JRTC_V2_ERROR_CODE_SPEAKER_STOP_FAIL | 停止扬声器失败 |
JRTC_V2_ERROR_CODE_NETWORK | 设备已连接网络,但网络连接异常 |
JRTC_V2_ERROR_CODE_NETWORK_REQUEST_TIMEOUT | 网络请求超时 |
JRTC_V2_ERROR_CODE_NETWORK_REQUEST_CLOSE | 信令服务主动关闭请求 |
JRTC_V2_ERROR_CODE_SERVER_PARAMETER_INVALID | 服务端返回参数错误 |
JRTC_V2_ERROR_CODE_UNAUTHORIZED_OPERATION | 无权操作 |
JRTC_V2_ERROR_CODE_PARAMETER_INVALID | 参数错误 |
JRTC_V2_ERROR_CODE_OBJECT_NOT_FOUND | 找不到对象 |
JRTC_V2_ERROR_CODE_REQUEST_INVALID | 请求错误 |
JRTC_V2_ERROR_CODE_INTERNAL_ERROR | 内部错误 |
JRTC_V2_ERROR_CODE_REPEATE_SUBMISSION | 重复提交 |
JRTC_V2_ERROR_CODE_USER_NOT_FOUND | 未找到目标用户 |
JRTC_V2_ERROR_CODE_SERVER_FORBIDDEN | 服务端拒绝连接 |
JRTC_V2_ERROR_CODE_VIDEO_ENCODE_FAIL | 视频帧编码失败,例如 iOS 设备切换到其他应用时,硬编码器可能被系统释放,再切换回来时,硬编码器重启前,可能会抛出 |
JRTC_V2_ERROR_CODE_UNSUPPORTED_RESOLUTION | 不支持的视频分辨率 |
JRTC_V2_ERROR_CODE_AUDIO_ENCODE_FAIL | 音频帧编码失败,例如传入自定义音频数据,SDK 无法处理 |
JRTC_V2_ERROR_CODE_UNSUPPORTED_SAMPLERATE | 不支持的音频采样率 |
JRTC_V2_ERROR_CODE_VIDEO_CONSUMER_DOWNGRADE | 视频降级,服务端不会发布视频流给客户端,客户端需相应的提示 |
JRTC_V2_ERROR_CODE_CLOSE_PRODUCER | 通知客户端关闭指定Producer,SDK内部会根据相关信息,停止发布视频流或者音频流或者屏幕共享流,需客户端做相应的UI处理 |
保存视频分辨率、帧率、推流编码帧率等信息
视频分辨率
@property(nonatomic,assign)JRTC_VIDEO_RESOLUTION videoResolution;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
videoResolution | JRTC_VIDEO_RESOLUTION | 是 | 视频推流分辨率,默认720P |
帧率
@property(nonatomic,assign)JRTC_VIDEO_FPS videoFps;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
videoFps | JRTC_VIDEO_FPS | 是 | 视频推流帧率,默认15帧 |
视频推流编码帧率
@property(nonatomic,assign)JRTC_VIDEO_ENCODE_FPS videoEncodeFPS;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
videoEncodeFPS | JRTC_VIDEO_ENCODE_FPS | 是 | 默认15帧,其值要小于等于videoFps值,videoEncodeFPS小于videoFps时,推流视频帧编码时,会按比例丢帧,其值大于videoFps时,SDK内部将会将其值设置为videoFps相同的值 |
是否开启多路推流
@property(nonatomic,assign)BOOL enableMultiStream;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
enableMultiStream | BOOL | 是 | 是否开启多路推流,默认为NO,不开启多路推流 |
JRTCCloudExt类是管理屏幕共享视频的类,提供了各种接口,供音视频会议App共享屏幕开发者调用
JRTCCloudExt类实例化单例
获取单例
+ (JRTCCloudExt *)sharedInstance;
开始录屏
视频会议中,网络状态发生变化时的回调,详见 JRTCCloudExtDelegate 中的定义
- (void)startScreenShareWithAppGroup:(NSString *)appGroup
delegate:(id<JRTCCloudExtDelegate>)delegate;
属性说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
appGroup | NSString | 是 | 用于指定您的应用与录屏进程共享的 Application Group Identifier |
delegate | JRTCCloudExtDelegate | 是 | 回调对象 |
录屏暂停方法
暂停录屏
- (void)pauseScreenShare;
录屏恢复方法
恢复录屏
- (void)resumedScreenShare;
结束录屏
结束录屏
- (void)stopScreenShare;
发送屏幕原始视频帧
当前只支持共享视频画面
- (void)sendSampleBuffer:(CMSampleBufferRef)sampleBuffer
withType:(RPSampleBufferType)sampleBufferType
参数说明:
属性名 | 属性类型 | 是否必须设置 | 说明 |
---|---|---|---|
sampleBuffer | CMSampleBufferRef | 是 | 录屏原始音视频数据 |
sampleBufferType | RPSampleBufferType | 是 | 当前只支持共享RPSampleBufferTypeVideo类型数据 |
主APP结束屏幕回调
-(void)onMainAppScreenShareFinished;
我们的产品专家为您找到最合适的产品/解决⽅案
1v1线上咨询获取售前专业咨询
专业产品顾问,随时随地沟通