产品文档

音视频通信 JRTC

2023-08-22 09:18:28

1 JRTCCloud类

描述

JRTCCloud类是音视频会议开发最主要的类,提供了各种接口,供音视频会议App开发者调用

JRTCCloud类基础方法

  1. JRTCCloud类实例化单例

+ (JRTCCloud *)sharedInstance;

  1. RTCCloud类销毁单例

+ (void)destroySharedIntance;

  1. 房间事件的回调

您可以通过 JRTCCloudRoomDelegate 获得来自JRTC_iOS.Framework的各种房间状态通知,
详见 JRTCCloudRoomDelegate.h 中的定义

@property(nonatomic,weak)id<JRTCCloudRoomDelegate> roomDelegate;

属性说明:

属性名 属性类型 是否必须设置 说明
roomDelegate JRTCCloudRoomDelegate 房间事件的各种回调
  1. 网络事件的回调

视频会议中,网络状态发生变化时的回调,详见 JRTCCloudNetDelegate.h 中的定义

@property(nonatomic,weak)id<JRTCCloudNetDelegate> netDelegate;

属性说明:

属性名 属性类型 是否必须设置 说明
netDelegate JRTCCloudNetDelegate 网络事件的各种回调
  1. 消息大厅消息事件的各种回调

消息大厅,接收消息事件的回调,详见 JRTCCloudMessageDelegate.h中的定义

@property(nonatomic,weak)id<JRTCCloudMessageDelegate> messageDelegate

属性说明:

属性名 属性类型 是否必须设置 说明
messageDelegate JRTCCloudMessageDelegate 消息大厅消息事件的各种回调
  1. 开启或者关闭摄像头视频帧向外流出

@property(nonatomic,assign)BOOL isCameraVideoFrameOut

属性说明:

属性名 属性类型 是否必须设置 说明
isCameraVideoFrameOu7 BOOL 虚拟背景、美颜之类的功能,可开启此功能,开启后,本地摄像头采集到的视频帧会向外流出,外部可处理视频帧,默认关闭
  1. 是否非自动订阅远端音频流

@property(nonatomic,assign)BOOL isNOAutoSubRemoteAudios

属性说明:

属性名 属性类型 是否必须设置 说明
isNOAutoSubRemoteAudios BOOL 默认为NO,为NO时,不需要App层手动订阅远端音频流,YES时需要App层手动调用订阅远端音频流。手动订阅远端音频流接口为:-(void)startRemoteAudios,手动取消订阅远端音频流接口为:-(void)stopRemoteAudios
  1. 检查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表示已授权
  1. 设置jrtc服务端地址

此方法调用时机为调用[JRTCCloud sharedInstance]及设置了roomDelegate后,并且在调用enterRoomWithAuthModel加入房间前。不调用此方法,jrtc服务端地址为默认地址,调用此方法,jrtc服务端地址为设置的httpHost地址,httpHost无效时,会触发错误回调,并且jrtc服务端地址为默认地址

- (void)setHttpHost:(NSString *)httpHost

参数说明:

属性名 属性类型 是否必须设置 说明
httpHost NSString 服务端地址
  1. 设置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中包含错误信息
  1. 设置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中包含错误信息
  1. 设置jrtc 配置文件服务端地址

此方法调用时机为调用[JRTCCloud sharedInstance]及设置了roomDelegate后,并且在调用enterRoomWithAuthModel加入房间前。不调用此方法,jrtc配置文件服务端地址为默认地址,调用此方法,jrtc服务端地址为设置的configPath地址,configPath无效时,会触发错误回调,并且jrtc服务端地址为默认地址

- (void)setSDKConfigPath:(NSString *)configPath

参数说明:

属性名 属性类型 是否必须设置 说明
configPath NSString 配置文件服务端地址
  1. 设置jrtc 配置文件内容

此方法调用时机为调用[JRTCCloud sharedInstance]及设置了roomDelegate后,并且在调用enterRoomWithAuthModel加入房间前。不调用此方法,jrtc配置文件内容为默认内容,调用此方法,jrtc配置文件内容为设置的configString内容configString无效时,会触发错误回调,并且jrtc服务端地址为默认地址

- (void)setSDKConfigString:(NSString *)configString

参数说明:

属性名 属性类型 是否必须设置 说明
configString NSString 配置文件内容
  1. 初始化消息大厅

消息大厅发送消息,不必进入房间。参数错误的话,会收到JRTCCloudMessageDelegate中错误回调

- (void)initJmsgMessageWithAuthModel:(JRTCEnterRoomAuthModel *)authModel;

参数说明:

参数名 类型 是否必传 说明
authModel JRTCEnterRoomAuthModel authModel 初始化消息大厅必须的认证信息,由京东云控制台相关接口下发
  1. 开启/关闭 网络增强

只能在进入房间前进行设置,不设置的话,默认为NO

- (void)enableNetWorkEnhance:(BOOL) enable

参数说明:

参数名 类型 是否必传 说明
enable BOOL 是否打开网络增强功能
  1. 加入房间

如果在调用加入房间前,调用了退出房间,则必须等退出房间finishBlock回调后,才能再次调用加入房间接口;
加入房间后,本地用户会收到JRTCCloudRoomDelegate中加入房间成功的消息回调,
同一房间内,远端用户会收到JRTCCloudRoomDelegate中有用户加入房间的回调消息。
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。

  • 注意:只有处于未进入房间状态下,才能调用加入房间,否则调用无效。

  • authMode 加入房间必传的参数,携带加入房间必须的鉴权信息,authModel相关数据,由京东云控制台相关接口下发

- (void)enterRoomWithAuthModel:(JRTCEnterRoomAuthModel *)authMode

参数说明:

参数名 类型 是否必传 说明
authMode JRTCEnterRoomAuthModel 加入房间必须的鉴权信息,相关数据,由京东云控制台相关接口下发
  1. 离开房间

本地用户调用离开房间后,同一房间内,远端用户会收到JRTCCloudRoomDelegate中用户离开房间的回调消息,

  • 注意:只有处于已进入房间状态下,才能调用退出房间,否则调用无效。

- (void)exitRoomWithFinishBlock:(FinishBlock)finishBlock;

参数说明:

参数名 类型 是否必传 说明
finishBlock FinishBlock 离开房间完成回调,只有离开房间后,才能再次调用加入房间接口
  1. 开关智能音频降噪

进入房间后,可动态开关智能音频降噪

- (void)openNoiseEx:(BOOL)noiseExIsOpen

参数说明:

参数名 类型 是否必传 说明
noiseExIsOpen BOOL 是否打开智能音频降噪,默认开启,YES时,打开智能音频降噪,NO时关闭智能音频降噪

JRTCCloud类视频相关方法

  1. 设置视频编码器相关参数

该设置决定了远端用户看到的画面质量及远端用户能否拉去大小画面视频流
该设置应该在调用 startLocalPreview:view:函数前设置
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。
如果不设置,本地视频默认分辨率为720P,帧率为15帧,默认不开启视频大小画面推流

- (void)setCameraEncoderWithParam:(JRTCVideoEncParam*)param;

参数说明:

参数名 类型 是否必传 说明
param JRTCVideoEncParam 视频编码相关参数
  1. 向外流出本地推流的摄像头采集的视频帧

-(void)onCaptureVideoFrameBlock:(void (^)(JRTCVideoFrame * videoFrame))videoFrameBlocK

参数说明:

参数名 类型 是否必传 说明
videoFrameBlocK void (^)(JRTCVideoFrame * videoFrame) 本地摄像头采集的推流视频帧回调
  1. 输入外部处理视频帧

外部处理本地摄像头采集的视频帧后,生成新的视频帧,再传给JRTCCloud

- (void)inputVideoFrame:(JRTCVideoFrame *)videoFrame

参数说明:

参数名 类型 是否必传 说明
videoFrame JRTCVideoFrame 处理后的本地视频帧
  1. 打开本地预览,只预览

调用此接口前,先调用初始化消息大厅接口(initJmsgMessageWithAuthModel)或者进入房间接口(enterRoomWithEnterRoomModel),打开本地预览。否则本地用户会收不到JRTCCloudRoomDelegate中本地视频流视频第一帧宽高回调

- (void)onlyStartLocalPreviewWithFrontCamera:(BOOL)frontCamera
                    addLocalCameraRenderView:(JRTCVideoView *)view

参数说明:

参数名 类型 是否必传 说明
frontCamera BOOL 视频采集前后摄像头
view JRTCVideoView 视频绘制展示画面
  1. 关闭本地预览

- (void)onlyStopLocalPreview

  1. 设置采集本地预览视频的前后摄像头,及视频要绘制展示的画面。

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 视频绘制展示画面
  1. 停止本地摄像头采集视频

调用此接口,出错时,本地用户会收到JRTCCloudRoomDelegate中的错误回调;
成功的话本地用户端不会收到任何回调,直接修改相关数据状态。
本地用户调用停止本地摄像头采集视频成功后,同一房间内,
远端用户会收到JRTCCloudRoomDelegate中有视频流不可以订阅的回调消息,
远端用户可以根据此视频流不可以订阅,来置空此条视频流相关信息。

- (void)stopLocalPreview;

  1. 添加本地摄像头采集视频渲染画面

- (void)addLocalCameraRenderView:(JRTCVideoView *)view

参数说明:

参数名 类型 是否必传 说明
view JRTCVideoView 视频绘制展示画面
  1. 停止本地摄像头采集视频

- (void)removeLocalCameraRenderView:(JRTCVideoView *)view

参数说明:

参数名 类型 是否必传 说明
view JRTCVideoView 视频绘制展示画面
  1. 暂停/继续推送本地的视频数据

加入房间成功后,才可以调用此接口。
同一房间中,本地用户不会收到任何回调,
远端用户会收到JRTCCloudRoomDelegate中有视频流暂停或者继续的消息,
进而展示或者隐藏相应视频画面。

- (void)muteLocalVideoWithMute:(BOOL)mute;

参数说明:

参数名 类型 是否必传 说明
mute BOOL YES为暂停 NO为继续
  1. 订阅远端视频流

加入房间成功后,才可调用此接口。同一房间中,订阅远端视频流成功后,用户会收到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为大画面视频流
  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为大画面视频流
  1. 取消渲染远端视频流到视频画面

加入房间成功后,才可调用此接口。调用此接口,出错时,本地用户会收到JRTCCloudRoomDelegate中的错误回调;成功的话本地用户端不会收到任何回调,直接修改相关数据状态。调完此接口后,videoView会展示为最后一帧画面。参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。

- (void)stopRenderRemoteVideoWithVideoView:(JRTCVideoView *)videoView
                                    userId:(NSString *)userId
                                  streamID:(NSString *)streamId

参数说明:

参数名 类型 是否必传 说明
videoView JRTCVideoView 远端视频流要取消绘制的画面
userId NSString 要取消订阅视频流对应的userID
streamId NSString 要取消订阅视频流对应的streamId
  1. 取消订阅视频流

加入房间成功后,才可调用此接口。调用此接口,出错时,本地用户会收到JRTCCloudRoomDelegate中的错误回调;成功的话本地用户端不会收到任何回调,直接修改相关数据状态。参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。

- (void)stopRemoteVideoWithUserId:(NSString *)userId
                         streamID:(NSString *)streamId

参数说明:

参数名 类型 是否必传 说明
userId NSString 要取消订阅视频流对应的userID
streamId NSString 要取消订阅视频流对应的streamId
  1. 暂停/继续订阅远端的视频数据。

加入房间成功后,才可调用此接口。
暂停的话通道不断,网络数据不收,本地用户不会收到回调消息,
同一房间中,对应远端用户画面会展示为远端视频流最后一帧画面。
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。

- (void)muteRemoteVideoWithStreamId:(NSString*)streamId
                               mute:(BOOL)mute;

参数说明:

参数名 类型 是否必传 说明
streamId NSString 远端视频流streamId
mute BOOL YES为暂停 NO为继续
  1. 暂停/继续订阅所有远端用户的视频数据。

加入房间成功后,才可调用此接口。
暂停的话通道不断,网络数据不收,本地用户不会收到回调消息,
同一房间中,远端所有用户画面会展示为视频流最后一帧画面。

- (void)muteAllRemoteVideoStreamsWithMute:(BOOL)mute;

参数说明:

参数名 类型 是否必传 说明
mute BOOL YES为暂停 NO为继续
  1. 设置本地摄像头预览画面的镜像模式

- (void)setLocalPreVideoIsMirror:(BOOL)mirror;

参数说明:

参数名 类型 是否必传 说明
mirror BOOL YES为镜像 NO为非镜像

JRTCCloud类音频相关方法

  1. 开启本地音频的采集

当本地用户加进房间成功后,会自动发布本地用户音频流,推流成功后,本地用户会收到JRTCCloudRoomDelegate中本地音频流可用的回调消息,远端用户会收到JRTCCloudRoomDelegate中有音频流可以订阅的回调,远端用户可以根据有音频流可以订阅,来决定是否订阅此条音频流。本地用户加入房间后,调用此函数,发布音频流,如果发布音频流超时,会触发错误类型为JRTC_ERROR_CODE_PUBLISH_AUDIO_STREAM_TIMEOUT错误回调,超时时间15秒,本地用户可重新调用此函数,重新发布音频流。

- (void)startLocalAudioWithPriority:(NSInteger)micHighPriority

参数说明:

参数名 类型 是否必传 说明
micHighPriority NSInteger micHighPriority 本地发布音频流的优先级,设置值范围0-100,值越高,优先级越高,默认为0
  1. 关闭本地音频的采集和上行

调用此接口,出错时,本地用户会收到JRTCCloudRoomDelegate中的错误回调;
成功的话本地用户端不会收到任何回调,直接修改相关数据状态。
远端用户会走JRTCCloudRoomDelegate中有音频流不可以订阅的回调,
远端用户可以根据有音频流不可以订阅,来置空此条音频流相关信息。

- (void)stopLocalAudio;

  1. 订阅远端音频流

加入房间成功后,才可调用此接口。
订阅远端视频流后,订阅成功后,本地用户会收到JRTCCloudRoomDelegate中音频流继续、
音频流音量信息的回调消息。
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。

  • 大房间模式下,用户不可订阅远端用户音频流。

  • 本地用户加入房间后,调用此函数,订阅远端音频流,订阅音频流超时,会触发JRTC_ERROR_CODE_SUBSCRIBE_AUDIO_STREAM_TIMEOUT类型的错误回调,超时时间15秒,本地用户可重新调用此函数,重新订阅音频流。

- (void)startRemoteAudioWithUserId:(NSString *)userId
                          streamID:(NSString *)streamId;

参数说明:

参数名 类型 是否必传 说明
userId NSString 要订阅音频流对应的userId
streamId NSString 要订阅音频流对应的streamId
  1. 取消订阅远端音频流

加入房间成功后,才可调用此接口。
调用此接口,出错时,本地用户会收到JRTCCloudRoomDelegate中的错误回调;
成功的话本地用户端不会收到任何回调,直接修改相关数据状态。
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。

  • 注意:1.大房间模式下,本地用户不可取消订阅远端用户音频流。

- (void)stopRemoteAudioWithUserId:(NSString *)userId
                         streamID:(NSString *)streamId;

参数说明:

参数名 类型 是否必传 说明
userId NSString 要取消订阅音频流对应的userID
streamId NSString 要取消订阅音频流对应的streamId
  1. 静音/取消静音本地的音频

加入房间成功后,才可调用此接口。
远端用户会收到JRTCCloudRoomDelegate中有音频流暂停或者继续的回调消息,
进而改变有关音频展示的UI,本地用户不会收到回调消息。

- (void)muteLocalAudioWithMute:(BOOL)mute;

参数说明:

参数名 类型 是否必传 说明
mute BOOL mute YES为静音 NO为取消静音
  1. 静音/取消静音指定的远端用户的声音。

加入房间成功后,才可以调用此接口。
静音的话通道不断,网络数据不收,本地用户不会收到回调消息。
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。

- (void)muteRemoteAudioStreamWithStreamId:(NSString *)streamId
                                     mute:(BOOL)mute;

参数说明:

参数名 类型 是否必传 说明
streamId NSString 音频流streamId
mute BOOL YES为静音 NO为取消静音
  1. 静音/取消静音所有远端用户的声音

加入房间成功后,才可以调用此接口。
静音的话通道不断,网络数据不收,本地用户不会收到回调消息。

- (void)muteAllRemoteAudioStreamsWithMute:(BOOL)mute;

参数说明:

参数名 类型 是否必传 说明
mute BOOL YES为静音 NO为取消静音
  1. 订阅会议远端音频流

加入房间成功前调用此接口,SDK内部会记录需要订阅远端音频流状态,等加入房间成功后,会真正去订阅远端音频流,加入房间成功后,调用此接口,SDK内部会订阅远端音频流。

-(void)startRemoteAudios

  1. 取消订阅会议远端音频流

加入房间成功前调用此接口,SDK内部会记录需要取消订阅远端音频流状态,等加入房间成功后,SDK根据此状态不会订阅远端音频流。加入房间成功后,调用此接口,如果SDK内部会根据订阅远端音频流状态,如果为已订阅状态,则取消远端音频流订阅,否则不做任何操作。

-(void)stopRemoteAudios

JRTCCloud类切换摄像头接口

  1. 切换前后摄像头

- (void)switchCamera;

JRTCCloud类修改昵称接口

注意:只能是进入房间成功后,才能修改昵称

  1. 修改昵称

加入房间成功后,才可以调用此接口。
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。

- (void)changeNickNameWithNickName:(NSString *)nickName;

参数说明:

参数名 类型 是否必传 说明
nickName NSString 新的昵称

JRTCCloud类获取版本号接口

  1. 获取版本号

+ (NSString *)getSDKVersion;

JRTCCloud类发送消息接口

  1. 发送消息

发送消息,消息大厅和普通模式下,发送消息都调用此函数。

    1. 消息大厅模式下,用户不必加进房间,发送消息后,远端用户会收到JRTCCloudMessageDelegate中的回调消息;

    1. 普通模式下,用户必须加入房间,同一房间中,远端用户会走JRTCCloudRoomDelegate.h中消息接收回调。

- (void)sendMessageWithModel:(JRTCMessageModel *)messageModel
                 finishBlock:(SendMessageBlock)finishBlock;

参数说明:

参数名 类型 是否必传 说明
messageModel JRTCMessageModel 消息内容,当messageModel中的toUserID为空时,为广播消息;有值时为单独发给对应的远端用户
finishBlock SendMessageBlock 发送消息完成回调

字幕流相关方法

  1. 订阅多个字幕流

-(void)subRemoteDataStreamsWithStreamIds:(NSArray *)streamIds;

参数说明:

参数名 类型 是否必传 说明
streamIds NSArray 需要订阅的字幕流数组,当streamIds为空时,订阅字幕流无效,需要订阅多少字幕流,传递多少个以字幕流streamId组成的数组
  1. 订阅单个字幕流

-(void)subRemoteDataStreamWithStreamId:(NSString *)streamId;

参数说明:

参数名 类型 是否必传 说明
streamId NSString streamId 需要订阅的字幕流数组,当streamId为空时,订阅字幕流无效
  1. 取消订阅多个字幕流

-(void)unSubRemoteDataStreamsWithStreamIds:(NSArray *)streamIds;

参数说明:

参数名 类型 是否必传 说明
streamIds NSArray 需要取消订阅多少字幕流,传递多少个以字幕流streamId组成的数组
  1. 取消订阅单个字幕流

-(void)unSubRemoteDataStreamWithStreamId:(NSString *)streamId;

参数说明:

参数名 类型 是否必传 说明
streamId NSString 需要订阅的字幕流数组,当streamId为空时,取消订阅字幕流无效

JRTCCloud类混流接口

  1. 开始混流任务

下发混流任务,混流成功后,本地用户会收到JRTCCloudRoomDelegate中混流成功的回调
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。

- (void)startMixStreamWithSrcStreamInfos:(NSArray <JRTCMixSrcStreamModel*>*)srcStreamInfos
                          destStreamInfo:(JRTCMixDestStreamModel *)destStreamInfo
                         toPushStreamUrl:(NSString *)toPushStreamUrl;

参数说明:

参数名 类型 是否必传 说明
srcStreamInfos NSArray 源流信息列表
destStreamInfo JRTCMixDestStreamModel 混流后 目标流id
toPushStreamUrl NSString 推直播平台的推流地址,如果存在必须携带
  1. 更新混流任务

只有已经混流成功的视频流,才可以调用此接口
更新混流成功后,本地用户会收到JRTCCloudRoomDelegate中更新混流成功的回调
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。

- (void)updateMixStreamWithSrcStreamInfos:(NSArray <JRTCMixSrcStreamModel*>*)srcStreamInfos
                             destStreamId:(NSString *)destStreamId
                          toPushStreamUrl:(NSString *)toPushStreamUrl;

参数说明:

参数名 类型 是否必传 说明
srcStreamInfos NSArray 源流信息列表
destStreamInfo JRTCMixDestStreamModel 混流后 目标流id
toPushStreamUrl NSString 推直播平台的推流地址,如果存在必须携带
  1. 关闭混流任务

本地用户不会收到任何回调
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。

- (void)closeMixStreamWithDestStreamId:(NSString *)destStreamId
                       toPushStreamUrl:(NSString *)toPushStreamUrl;

参数说明:

参数名 类型 是否必传 说明
destStreamId NSString 混流后 目标流id
toPushStreamUrl NSString 推直播平台的推流地址,如果存在必须携带

JRTCCloud类会控接口

  1. 远端用户全体静音或取消静音

加入房间成功后,才可以调用此接口。
同一房间内,本地用户不会收到回调消息;
远端所有用户都会收到JRTCCloudRoomDelegate.h房间静音或取消静音的回调消息。

-(void)muteAllAudioWithIsMute:(BOOL)isMute;

参数说明:

参数名 类型 是否必传 说明
isMute BOOL 静音/取消静音
  1. 单独静音或取消静音某个用户

加入房间成功后,才可以调用此接口。
同一房间内,房间中对应人员会收到JRTCCloudRoomDelegate.h静音或取消静音的回调。
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。

-(void)muteUserAudioWithIsMute:(BOOL)isMute
                        userID:(NSString *)userId;

参数说明:

参数名 类型 是否必传 说明
isMute BOOL 静音/取消静音
userId NSString 对应用户userId
  1. 房间中禁止/允许开启视频

加入房间成功后,才可以调用此接口。
同一房间内,远端用户全部禁止/允许开启视频频流,本地用户不会收到回调消息;
远端所有用户都会收到JRTCCloudRoomDelegate.h中房间中禁止/允许开启视频流的回调。

-(void)forbidAllVideoWithIsForbid:(BOOL)isForbid;

参数说明:

参数名 类型 是否必传 说明
isForbid BOOL 关闭或取消关闭推视频流
  1. 远端用户禁止/允许开启视频流,

加入房间成功后,才可以调用此接口。
同一房间内,本地用户不会收到回调消息;
远端对应用户会收到JRTCCloudRoomDelegate.h单个用户禁止/允许开启视频流回调。
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。

-(void)forbidUserVideoWithIsForbid:(BOOL)isForbid
                            userID:(NSString *)userId;

参数说明:

参数名 类型 是否必传 说明
isForbid BOOL 禁止/允许开启视频流
userId NSString 对应用户userId
  1. 禁止/允许聊天

加入房间成功后,才可以调用此接口。
同一房间内,本地用户不会收到回调消息;
远端所有用户都会收到JRTCCloudRoomDelegate.h中房间中禁止/允许聊天回调。

-(void)forbidChatWithIsForbid:(BOOL)isForbid;

参数说明:

参数名 类型 是否必传 说明
isForbid BOOL 禁止/允许聊天
  1. 主持人结束会议

加入房间成功后,才可以调用此接口。
同一房间内,远端用户会收到JRTCCloudRoomDelegate.h中主持人结束会议回调。

-(void)hosterFinishMeeting;

  1. 向整个房间发送自定义事件。

加入房间成功后,才可以调用此接口。
同一房间内,本地用户不会收到回调,
远端用户会收到JRTCCloudRoomDelegate.h中自定义房间事件回调
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。

-(void)customSignalToRoomWithEventName:(NSString *)eventName
                             info:(NSDictionary *)info;

参数说明:

参数名 类型 是否必传 说明
eventName NSString 自定义事件名称,不能为空
info NSDictionary 事件需要携带的信息,不能为空
  1. 向某个人发送自定义事件。

加入房间成功后,才可以调用此接口。
同一房间内,本地用户不会收到回调,
对应远端用户会收到JRTCCloudRoomDelegate.h中自定义事件回调
参数错误的话,会收到JRTCCloudRoomDelegate中错误回调。

-(void)customSignalToUserWithTargetUserId:(NSString *)userId
                                eventName:(NSString *)eventName
                                      info:(NSDictionary *)info;

参数说明:

参数名 类型 是否必传 说明
userId NSString 接受事件人的userId,不能为空
eventName NSString 自定义事件名称,不能为空
info NSDictionary 事件需要携带的信息,不能为空
  1. 重置AudioSession为JRTCCloud音视频会议Configuration。

会议中,用户App其它业务模块,修改了AudioSession的Category,mode,Option,categoryOptions,
sampleRate,isActive等,可能会造成音视频会议的音频出现问题,可在适当时机重置音视频会议的AudioSession为JRTCCloud内部支持的AudioSession配置此函数一掉要在调用setCameraEncoderWithParam:后再调用

-(void)setAudioSessionWithJRTCCloudConfiguration;
  1. 设置AudioSession的CategoryOptions。

不调用此函数,会议默认CategoryOptions为AVAudioSessionCategoryOptionAllowBluetooth。设置为AVAudioSessionCategoryOptionMixWithOthers,其它App打开音频播放,不会中断会议音频设置为AVAudioSessionCategoryOptionDuckOthers,其它App打开音频播放,不会中断会议音频,且会议音频声音会盖过其它App音频。此函数一掉要在调用setCameraEncoderWithParam:后再调用

-(void)resetRTCAudioSessionCategoryOptionsWithOptions:(AVAudioSessionCategoryOptions)options;

参数说明:

参数名 类型 是否必传 说明
options AVAudioSessionCategoryOptions AudioSession的CategoryOptions

JRTCCloud类屏幕共享接口

  1. 开始分享录屏前,调用此接口,开始分享,只支持iOS12及以上系统。

- (void)screenShareStartWithAppGroup:(NSString *)appGroup priority:(NSInteger)screenHighPriority;

参数说明:

参数名 类型 是否必传 说明
appGroup NSString appGroup 用于指定您的应用与录屏进程共享的 Application Group Identifier
screenHighPriority NSInteger screenHighPriority 本地发布屏幕共享视频流的优先级,设置值范围0-100,值越高,优先级越高,默认为0
  1. 录屏分享结束后,调用此接口,结束分享。

- (void)screenShareFinished;

JRTCCloud类日志接口

  1. 上传日志接口。

+ (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时,表示上传失败
  1. App层上传log日志接口。

- (void)addLoganWithLogString:(NSString *)logString;

参数说明:

参数名 类型 是否必传 说明
logString NSString 上传日志内容,为空或字段长度为0,上传日志无效

2 各种回调事件

1.JRTCCloudRoomDelegate

描述

视频会议房各种事件回调接口

  1. 错误事件回调

-(void)onRoomError:(NSInteger)errorCode errorState:(NSString *)errorState errorInfo:(NSDictionary *)errorInfo;

参数说明:

参数名 类型 说明
errorCode NSInteger 错误码
errorState NSString 错误描述
errorInfo NSDictionary 错误信息,可能为空
  1. 新的错误事件回调,与旧的错误码回调共存,若果需要可以使用新的错误码回调

-(void)onRoomReportError:(NSInteger)errorCode
                 message:(NSString *)message
                    info:(NSString *)info;

参数说明:

参数名 类型 说明
errorCode NSInteger 错误码
message NSString 错误描述
info NSString 错误信息,可能为空
  1. 加入房间成功回调

-(void)onRoomJoinWithUserInfos:(NSDictionary *)infosDict;

参数说明:

参数名 类型 说明
infosDict NSDictionary 房间中的所有用户信息

用户事件回调

  1. 新用户加入房间回调

-(void)onRoomUserJoinWithUserId:(NSString *)userId nickName:(NSString *)nickName;

参数说明:

参数名 类型 说明
userId NSString 用户userId
nickName NSString 用户昵称
  1. 用户离开房间回调

-(void)onRoomUserLeaveWithUserId:(NSString *)userId;

参数说明:

参数名 类型 说明
userId NSString 用户userId

流信息事件回调

  1. 对于远端视频流对应为是否可订阅回调;对于用户自己的视频流,用户本地视频流推流成功后,本行用户会收到此回调,同时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 视频流是否可用
  1. 对于远端共享视频流对应为是否可订阅回调;对于用户自己的共享视频流,用户本地共享视频流推流成功后,本行用户会收到此回调,同时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 视频流是否可用
  1. 对于远端音频流对应为是否可订阅回调;对于用户自己的音频流,用户本地音频流推流成功后,本行用户会收到此回调,同时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 音频流是否可用
  1. 视频流暂停或者继续回调

-(void)onUserVideoMuteWithUserId:(NSString *)userId
                        streamId:(NSString *)streamId
                            mute:(BOOL)mute;

参数说明:

参数名 类型 说明
userId NSString 用户userId
streamId NSString 视频流ID
mute BOOL 视频流暂停或者继续
  1. 音频流暂停或者继续回调

-(void)onUserAudioMuteWithUserId:(NSString *)userId
                        streamId:(NSString *)streamId
                            mute:(BOOL)mute;

参数说明:

参数名 类型 说明
userId NSString 用户userId
streamId NSString 音频流ID
mute BOOL 视频流暂停或者继续
  1. 房间中有人正在说话的回调

-(void)onRoomUserVoiceActived:(NSString *)roomId
                       userId:(NSString *)userId
                       volume:(CGFloat)volume;

参数说明:

参数名 类型 说明
roomId NSString 房间ID
userId NSString 用户userId
volume NSDictionary 音量,范围为0.0-1.0,值越大,表示音量越大
  1. 视频流开始展示的第一帧宽高回调

    用户可以根据视频帧宽高比来展示相应的视频画面

-(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 视频帧高度

修改昵称回调

  1. 有用户修改昵称回调

-(void)onRoomUserUpdateNickName:(NSString *)roomId
                         userId:(NSString *)userId
                       nickName:(NSString *)nickName

参数说明:

参数名 类型 说明
roomId NSString 房间ID
userId NSString 用户userId
nickName BOOL 用户新昵称

消息事件回调

  1. 普通房间接收到广播消息回调

如果是自己发送给所有人,自己也会收到这条回调

-(void)onRecvMsgFromUserId:(NSString *)userId
                  nickName:(NSString *)nickName
                       msg:(NSString *)msg;

参数说明:

参数名 类型 说明
userId NSString 发送消息者userId
nickName NSString 发送消息者昵称
msg NSString 消息内容

混流回调

  1. 混流成功回调

-(void)onRoomMixStreamWithDestStreamId:(NSString *)destStreamId;

参数说明:

参数名 类型 说明
destStreamId NSString 生成混流的streamId
  1. 更新混流成功回调

-(void)onRoomUpdateMixStreamWithDestStreamId:(NSString *)destStreamId;

参数说明:

参数名 类型 说明
destStreamId NSString 更新后,生成混流的streamId

会议控制

  1. 本地用户接收到向整个房间广播的静音或者取消静音回调

-(void)onAudioMuteToRoomWithIsMute:(BOOL)isMute
                        fromUserId:(NSString *)userId
                          nickName:(NSString *)nickName;

参数说明:

参数名 类型 说明
isMute BOOL 静音或者取消静音
userId NSString 发出静音或者取消静音room的userId
nickName NSString 发出静音或者取消静音room的的nickName
  1. 本地用户接收到被静音或者取消静音回调

-(void)onAudioMuteFromUserWithIsMute:(BOOL)isMute
                          fromUserId:(NSString *)userId
                          nickName:(NSString *)nickName;

参数说明:

参数名 类型 说明
isMute BOOL 静音或者取消静音
userId NSString 发送静音或者取消静音者的userId
nickName NSString 发送静音或者取消静音者的nickName
  1. 本地用户接收到向整个房间广播的禁止或者取消禁止房间视频回调

-(void)onForbidVideoToRoomWithIsForbid:(BOOL)isForbid
                            fromUserId:(NSString *)userId
                              nickName:(NSString *)nickName;

参数说明:

参数名 类型 说明
isForbid BOOL 禁止或者取消禁止房间视频
userId NSString 发出关闭或取消关闭房间视频的userId
nickName NSString 发出关闭或取消关闭房间视频的的nickName
  1. 本地用户接收到被禁止或者取消禁止视频回调

-(void)onForbidVideoFromUserWithIsForbid:(BOOL)isForbid
                              fromUserId:(NSString *)userId
                              nickName:(NSString *)nickName;

参数说明:

参数名 类型 说明
isForbid BOOL 禁止或者取消禁止房间某个userId的视频
userId NSString 发送关闭或取消关闭房间视频者的userId
nickName NSString 发送关闭或取消关闭房间视频者peerId对应的nickName
  1. 本地用户接收到向整个房间广播禁言回调

-(void)onForbiddenChatToRoomWithUserId:(NSString *)userId
                              nickName:(NSString *)nickName;

参数说明:

参数名 类型 说明
userId NSString 禁言房间聊天发出者userId
nickName NSString 禁言房间聊天发出者nickName
  1. 本地用户接收到向整个房间取消禁言回调

-(void)onUnForbiddenChatToRoomWithUserId:(NSString *)userId
                                nickName:(NSString *)nickName;

参数说明:

参数名 类型 说明
userId NSInteger 关闭禁言房间聊天发出者userId
nickName NSString 关闭禁言房间聊天发出者nickName
  1. 本地用户接收到向整个房间广播的主持人结束会议回调

同一房间里所有人都会收到此回调

-(void)onHosterFinishMeeting;
  1. 本地用户接收到向整个房间广播的产生新的主持人回调

-(void)onNewHosterCreatedWithUserId:(NSString *)userId;

参数说明:

参数名 类型 说明
userId NSString 新的主持人userId
  1. 本地用户接收到向整个房间广播的自定义信令回调

同一房间里除了主持人,其他人都会收到此回调

-(void)onCustomSignalToRoomWithEventName:(NSString *)eventName
                                  userId:(NSString *)userId
                                nickName:(NSString *)nickName
                               eventInfo:(NSString *)info;

参数说明:

参数名 类型 说明
eventName NSString 自定义事件名称
userId NSString 发出自定义广播信令者的userId
nickName NSString 发出自定义广播信令者的nickName
info NSDictionary 自定义事件携带的信息,可以是普通字符串,也可以是可转化为json格式的字符串,客户端可根据自己需要获取相关信息
  1. 本地用户接收到发送给本地用户的自定义信令回调

-(void)onCustomSignalToUserWithEventName:(NSString *)eventName
                                  userId:(NSString *)userId
                                nickName:(NSString *)nickName
                               eventInfo:(NSString *)info;

参数说明:

参数名 类型 说明
eventName NSString 自定义事件名称
userId NSString 发出自定义信令者的userId
nickName NSString 发出自定义信令者的nickName
info NSDictionary 自定义事件携带的信息,可以是普通字符串,也可以是可转化为json格式的字符串,客户端可根据自己需要获取相关信息

数据流回调

  1. 有可以订阅的数据流

-(void)onDataStreamsAvailableWithStreamInfos:(NSArray *)streamInfos;

参数说明:

参数名 类型 说明
streamInfos NSArray 数据流信息数组,包含格式为Dictionary的字典,字典中包含的key为userId与streamId,对应的值为NSString类型
  1. 订阅数据流成功回调

-(void)onSubedRemoteDataStreamWithUserId:(NSString *)userId
                                streamId:(NSString *)streamId;

参数说明:

参数名 类型 说明
userId NSString 订阅成功的数据流对应的userId
streamId NSString 订阅成功的数据流对应的streamId
  1. 数据流消息回调

-(void)onUserDataMessageWithMessageModel:(JRTCDataStreamModel *)messageModel;

参数说明:

参数名 类型 说明
messageModel JRTCDataStreamModel 消息对应的model
  1. 数据流取消发布回调

-(void)onDataStreamClosedWithUserId:(NSString *)userId
                           streamId:(NSString *)streamId;

参数说明:

参数名 类型 说明
userId NSString 数据流取消发布对应的userId
streamId NSString 数据流取消发布对应的streamId

屏幕共享回调

  1. 屏幕扩展Ext停止共享屏幕事件回调

    用户通过停止屏幕共享组件设置停止屏幕共享时,会触发此回调

-(void)onDataStreamClosedWithUserId:(NSString *)userId
                           streamId:(NSString *)streamId;

2. JRTCCloudNetDelegate

描述

视频通话网络事件回调接口

  1. 当前网络连接类型回调

-(void)onNetType:(JRTC_NetWorkType)type;

参数说明:

参数名 类型 说明
type JRTC_NetWorkType 当前网络连接类型
  1. 网络连接断开回调

    触发这个回调后SDK内部会一直重新加入房间,直到有网后加入房间成功,然后会触发网络连接恢复

-(void)onNetStatusClose;
  1. 网络连接恢复回调

    网络链接恢复后,App会收到加入房间成功及当前哪些流可以订阅的回调。

-(void)onNetStatusRecovery;
  1. 当前会议使用网卡发生变化回调

-(void)onNetIpChangeWithName:(NSString *)name ipAddress:(NSString *)ipaddress;

参数说明:

参数名 类型 说明
name NSString 网络名称
ipaddress NSString 网卡IP地址
  1. 当前网络信号弱回调

-(void)onNetWeak;

3. JRTCCloudMessageDelegate

描述

视频通话消息大厅事件回调接口

  1. 消息大厅错误事件回调

-(void)messageOnErrorWithErrorCode:(NSInteger)errorCode errorState:(NSString *)errorState;

参数说明:

参数名 类型 说明
errorCode NSInteger 错误码
errorState NSString 错误描述
  1. 消息大厅接收到广播事件回调

-(void)messageOnUserBroadcastMessageFromUserID:(NSString *)userId msg:(NSString *)msg;

参数说明:

参数名 类型 说明
userId NSString 发送广播者userId
msg NSString 消息内容
  1. 消息大厅接收到消息回调

-(void)messageOnUserSendMessageFromUserWithUserID:(NSString *)userId msg:(NSString *)msg;

参数说明:

参数名 类型 说明
userId NSString 消息发送者userId
msg NSString 消息内容

3 保存数据信息的模型类

1. JRTCEnterRoomAuthModel类

描述

保存房间信息,包括加入房间鉴权认证所必须的信息

  1. 房间号

@property(nonatomic,strong)NSString *userRoomId;

属性说明:

属性名 属性类型 是否必须设置 说明
userRoomId NSString 房间号
  1. 用户昵称
    @property(nonatomic,strong)NSString *nickName;

属性说明:

属性名 属性类型 是否必须设置 说明
nickName NSString 用户昵称
  1. appId
    @property(nonatomic,strong)NSString *appId;

属性说明:

属性名 属性类型 是否必须设置 说明
appId NSString 用户在JRTC控制台申请JRTC SDK 接入时,appId由JRTC控制台生成,必传
  1. token

@property(nonatomic,strong)NSString *token

属性说明:

属性名 属性类型 是否必须设置 说明
token NSString 用户在JRTC控制台申请JRTC SDK 接入时,token由JRTC控制台生成,必传
  1. 用户userId

@property(nonatomic,strong)NSString *userId;

属性说明:

属性名 属性类型 是否必须设置 说明
peerId NSString 第三方用户ID,必传
  1. 令牌随机码

@property(nonatomic,strong)NSString *nonce;

属性说明:

属性名 属性类型 是否必须设置 说明
nonce NSString 用户在JRTC控制台申请JRTC SDK 接入时,nonce由JRTC控制台生成,必传
  1. 令牌过期时间戳(毫秒)

@property(nonatomic,strong)NSString *timestamp

属性说明:

属性名 属性类型 是否必须设置 说明
timestamp NSString 第三方用户生成,必传

2. JRTCMessageModel类

描述

保存消息信息

  1. 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 消息大厅类型
  1. 消息发送者userId

@property(nonatomic,strong)NSString *fromUserId;

属性说明:

属性名 属性类型 是否必须设置 说明
fromUserId NSString 消息发送者UserID
  1. 消息接受者userId

@property(nonatomic,strong)NSString *toUserId;

属性说明:

属性名 属性类型 是否必须设置 说明
toUserId NSString 消息接受者userID,为空时,为广播此条消息,不为空时为单聊
  1. 消息内容

@property(nonatomic,strong)NSString *msg;

属性说明:

属性名 属性类型 是否必须设置 说明
msg NSString 消息内容
  1. 消息类型

@property(nonatomic,assign)JRTC_MESSAGE_MODE messageMode;

属性说明:

属性名 属性类型 是否必须设置 说明
messageMode JRTC_MESSAGE_MODE 消息类型
  1. 所在房间

@property(nonatomic,strong)NSString *userRoomId;

属性说明:

属性名 属性类型 是否必须设置 说明
userRoomId NSString 所在房间

4. JRTCMixSrcStreamModel类

描述

保存混流源数据信息

  1. srcStreamId

@property(nonatomic,strong)NSString *srcStreamId;

属性说明:

属性名 属性类型 是否必须设置 说明
srcStreamId NSString 源流id
  1. srcStreamName

@property(nonatomic,strong)NSString *srcStreamName;

属性说明:

属性名 属性类型 是否必须设置 说明
srcStreamName NSString 源流名称

5. JRTCMixDestStreamModel类

描述

保存混流目标数据信息

  1. destStreamId

@property(nonatomic,strong)NSString *destStreamId;

属性说明:

属性名 属性类型 是否必须设置 说明
destStreamId NSString 目标流id
  1. destStreamName

@property(nonatomic,strong)NSString *destStreamName;

属性说明:

属性名 属性类型 是否必须设置 说明
destStreamName NSString 目标流名称
  1. streamLayout

@property(nonatomic,strong)NSString *streamLayout;

属性说明:

属性名 属性类型 是否必须设置 说明
streamLayout NSString 流布局:TILED(平铺),PIC-IN-PIC(画中画)
  1. kind

@property(nonatomic,strong)NSNumber *kind;

属性说明:

属性名 属性类型 是否必须设置 说明
kind NSNumber 1:音频 2:视频, 3:音视
  1. codec

@property(nonatomic,strong)NSString *codec;

属性说明:

属性名 属性类型 是否必须设置 说明
codec NSString 编码格式 默认h264
  1. bitrate

@property(nonatomic,strong)NSNumber *bitrate;

属性说明:

属性名 属性类型 是否必须设置 说明
bitrate NSNumber 码率
  1. frame

@property(nonatomic,strong)NSNumber *frame;

属性说明:

属性名 属性类型 是否必须设置 说明
frame NSNumber 帧率
  1. resolution

@property(nonatomic,strong)NSNumber *resolution;

属性说明:

属性名 属性类型 是否必须设置 说明
resolution NSNumber 分辨率 720,360
  1. ext

@property(nonatomic,strong)NSString *ext;

属性说明:

属性名 属性类型 是否必须设置 说明
ext NSString 扩展参数

6. JRTCVideoView类

描述

用于视频画面展示,继承自UIView

  1. 设置视频背景画面颜色

-(void)setBackGroundColorWithColor:(UIColor *)color;

参数说明:

参数名 类型 说明
color UIColor 视频背景颜色
  1. 设置视频渲染帧率

-(void)setRenderFPS:(JRTC_VIDEO_RENDER_FPS)videoRenderFPS;

参数说明:

参数名 类型 说明
videoRenderFPS JRTC_VIDEO_RENDER_FPS 视频渲染帧率,默认30帧

7. JRTCVideoFrame类,虚拟背景处理视频帧使用

描述

  1. 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度

用于视频帧角度记录

  1. 视频帧宽度

@property(nonatomic, assign) int width;

参数说明:

参数名 类型 说明
width int 视频帧宽度
  1. 视频帧高度

@property(nonatomic, assign) int height;

参数说明:

参数名 类型 说明
height int 视频帧高度
  1. 视频帧角度

@property(nonatomic, assign) JRTC_VideoRotation rotation;

参数说明:

参数名 类型 说明
rotation JRTC_VideoRotation 视频帧角度
  1. 视频帧时间戳,纳秒

@property(nonatomic, assign) int64_t timeStampNs;

参数说明:

参数名 类型 说明
timeStampNs int64_t 视频帧时间戳,纳秒
  1. 视频帧时间戳

@property(nonatomic, assign) int32_t timeStamp;

参数说明:

参数名 类型 说明
timeStamp int32_t 视频帧时间戳
  1. 视频帧PixelBufferRef

@property(nonatomic, assign) CVPixelBufferRef buffer;

参数说明:

参数名 类型 说明
buffer CVPixelBufferRef 视频帧PixelBufferRef
  1. 是否是前置摄像头

@property(nonatomic, assign) BOOL isFrontCap;

参数说明:

参数名 类型 说明
isFrontCap BOOL 是否是前置摄像头

8. JRTCLocalIpInfo类

描述

用于记录网卡信息

  1. 网卡网络信号评分

@property(nonatomic,assign)CGFloat netScore;

参数说明:

参数名 类型 说明
netScore CGFloat 分值越高,网络信号越好
  1. 网卡连接的wifi还是非wifi

@property(nonatomic,assign)BOOL isWifi;

参数说明:

参数名 类型 说明
isWifi assign YES为wifi,NO为非wifi
  1. 网卡ip地址

@property(nonatomic,strong)NSString *address;

参数说明:

参数名 类型 说明
address NSString 网卡ip地址

9. JRTCDataStreamEventInfoModel类

描述

用于记录字幕流事件信息

  1. 事件类型

@property(nonatomic,strong)NSString *eventType;

参数说明:

参数名 类型 说明
eventType NSString 事件类型,为error时,客户端需特殊处理
  1. 错误码

@property(nonatomic,assign)NSInteger errCode;

参数说明:

参数名 类型 说明
errCode NSInteger 错误码,只在eventType为error时有值
  1. 错误信息

@property(nonatomic,strong)NSString *errMsg;

参数说明:

参数名 类型 说明
errMsg NSString 错误信息,只在eventType为error时有值

10. JRTCDataStreamModel类

描述

用于记录字幕流信息

  1. 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 覆盖

用于客户端处理字幕拼接还是替换

  1. 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

用于客户端处理字幕消息是否是正常消息

  1. 订阅字幕返回的类型

@property(nonatomic,assign)JRTC_DATA_ACTION_TYPE actionType;

参数说明:

参数名 类型 说明
actionType JRTC_DATA_ACTION_TYPE 订阅字幕返回的类型
  1. 订阅字符返回字符串的类型

@property(nonatomic,assign)JRTC_DATA_STRING_MESSAGE_TYPE msgStrType;

参数说明:

参数名 类型 说明
msgStrType JRTC_DATA_STRING_MESSAGE_TYPE 订阅字符返回字符串的类型
  1. 字幕消息

@property(nonatomic,strong)NSString *msg;

参数说明:

参数名 类型 说明
msg NSString 字幕消息
  1. 字幕消息对应的发送者userId

@property(nonatomic,strong)NSString *userId;

参数说明:

参数名 类型 说明
userId NSString 字幕消息发送者userId
  1. 字幕消息对应的streamId

@property(nonatomic,strong)NSString *streamId;

参数说明:

参数名 类型 说明
streamId NSString 字幕消息对应的streamId
  1. 字幕消息标签

@property(nonatomic,strong)NSString *label;

参数说明:

参数名 类型 说明
label NSString 当前未使用,客户端不用使用此字段
  1. 字幕消息时间戳

@property(nonatomic,strong)NSNumber *reportTs;

参数说明:

参数名 类型 说明
reportTs NSNumber 字幕消息时间戳
  1. 字幕消息事件信息

@property(nonatomic,strong)JRTCDataStreamEventInfoModel *eventInfo;

参数说明:

参数名 类型 说明
eventInfo JRTCDataStreamEventInfoModel 字幕消息事件信息

11 JRTCCloudDef

描述

JRTCCloudDef中声明各种枚举类型,及保存视频分辨率、帧率等信息的JRTCVideoEncParam类

  1. 发送消息Block回调

普通房间发送消息完成回调与消息大厅发送消息完成回调,都会走此回调

typedef void(^SendMessageBlock)(NSError *error,JRTCMessageModel *messageModel);

block说明:

block参数 类型 说明
error NSError 发送失败信息
messageModel JRTCMessageModel 发送的消息
  1. 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 固定下发指定的大小画面视频流
  1. 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 小画面视频流,跟大画面的内容相同,但是分辨率和码率更低
  1. 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
  1. 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
  1. 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 任意网络
  1. 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帧每秒
  1. 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帧每秒
  1. 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处理
  1. 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处理

JRTCVideoEncParam类

描述

保存视频分辨率、帧率、推流编码帧率等信息

  1. 视频分辨率

@property(nonatomic,assign)JRTC_VIDEO_RESOLUTION videoResolution;

属性说明:

属性名 属性类型 是否必须设置 说明
videoResolution JRTC_VIDEO_RESOLUTION 视频推流分辨率,默认720P
  1. 帧率

@property(nonatomic,assign)JRTC_VIDEO_FPS videoFps;

属性说明:

属性名 属性类型 是否必须设置 说明
videoFps JRTC_VIDEO_FPS 视频推流帧率,默认15帧
  1. 视频推流编码帧率

@property(nonatomic,assign)JRTC_VIDEO_ENCODE_FPS videoEncodeFPS;

属性说明:

属性名 属性类型 是否必须设置 说明
videoEncodeFPS JRTC_VIDEO_ENCODE_FPS 默认15帧,其值要小于等于videoFps值,videoEncodeFPS小于videoFps时,推流视频帧编码时,会按比例丢帧,其值大于videoFps时,SDK内部将会将其值设置为videoFps相同的值
  1. 是否开启多路推流

@property(nonatomic,assign)BOOL enableMultiStream;

属性说明:

属性名 属性类型 是否必须设置 说明
enableMultiStream BOOL 是否开启多路推流,默认为NO,不开启多路推流

屏幕共享JRTC_iOS_ReplayKit SDK

JRTCCloudExt类

描述

JRTCCloudExt类是管理屏幕共享视频的类,提供了各种接口,供音视频会议App共享屏幕开发者调用

JRTCCloudExt类方法

  1. JRTCCloudExt类实例化单例

获取单例

+ (JRTCCloudExt *)sharedInstance;

  1. 开始录屏

视频会议中,网络状态发生变化时的回调,详见 JRTCCloudExtDelegate 中的定义

- (void)startScreenShareWithAppGroup:(NSString *)appGroup 
                            delegate:(id<JRTCCloudExtDelegate>)delegate;

属性说明:

属性名 属性类型 是否必须设置 说明
appGroup NSString 用于指定您的应用与录屏进程共享的 Application Group Identifier
delegate JRTCCloudExtDelegate 回调对象
  1. 录屏暂停方法

暂停录屏

- (void)pauseScreenShare;

  1. 录屏恢复方法

恢复录屏

- (void)resumedScreenShare;

  1. 结束录屏

结束录屏

- (void)stopScreenShare;

  1. 发送屏幕原始视频帧

当前只支持共享视频画面

- (void)sendSampleBuffer:(CMSampleBufferRef)sampleBuffer 
				 withType:(RPSampleBufferType)sampleBufferType

参数说明:

属性名 属性类型 是否必须设置 说明
sampleBuffer CMSampleBufferRef 录屏原始音视频数据
sampleBufferType RPSampleBufferType 当前只支持共享RPSampleBufferTypeVideo类型数据

JRTCCloudExtDelegate

描述

主APP结束屏幕回调

-(void)onMainAppScreenShareFinished;
文档反馈

开始与售前顾问沟通

可直接拨打电话 400-098-8505转1

我们的产品专家为您找到最合适的产品/解决⽅案

在线咨询 5*8⼩时

1v1线上咨询获取售前专业咨询

点击咨询
企微服务助手

专业产品顾问,随时随地沟通