JRTCSDK-iOS v2.0
API文档
构造函数 | 类方法 | 属性 | 所有成员列表
JRTCRoom类 参考

#import <JRTCRoom.h>

构造函数

(int) - query:
 
(bool) - join:joinParam:
 
(bool) - leave
 
(bool) - enableUploadAudioStream:
 
(bool) - enableUploadVideoStream:
 
(bool) - enableAudioOutput:
 
(bool) - requestVideo:videoSize:
 
(bool) - unRequestVideo:
 
(bool) - requestScreenVideo:
 
(bool) - unRequestScreenVideo
 
(bool) - enableScreenShare:appGroupId:preferredExtension:
 
(bool) - enableCdn:keyInterval:
 
(bool) - enableRemoteRecord:recordParam:
 
(bool) - enableLocalRecord:recordParam:
 
(bool) - updateLocalRecordLayout:
 
(JRTCRoomParticipant *__nullable) - getParticipant:
 
(NSString *__nullable) - getStatistics
 
(NSString *__nullable) - getJsonStats
 
(bool) - setCustomProperty:forKey:
 
(NSString *__nullable) - getCustomProperty:
 
(bool) - sendMessage:content:toUserId:
 
(int) - inviteSipUser:
 
(bool) - setRatio:
 
(bool) - sendAudioEmptyPack:
 
(bool) - sendVideoEmptyPack:
 
(bool) - setVideoDot:info:
 

类方法

(JRTCRoom *__nullable) + create:mediaDevice:callback:
 
(void) + destroy
 

属性

NSString * roomId
 
unsigned int roomHandle
 
NSString * password
 
RoomState state
 
NSArray * participants
 
bool uploadLocalAudio
 
bool uploadLocalVideo
 
bool audioOutput
 
NSString * shareStreamId
 
NSString * shareUserId
 
bool localRecording
 
NSString * title
 
RecordState remoteRecordState
 
CDNState cdnState
 
bool canBindCamera
 
bool notifyVolumeChange
 
- 属性 继承自 JRTCModuleBase
NSString * callId
 
NSString * bizId
 业务流水号
 

详细描述

多方通话类

函数文档

◆ create:mediaDevice:callback:

+ (JRTCRoom *__nullable) create: (JRTCClient *__nonnull)  client
mediaDevice: (JRTCMediaDevice *__nonnull)  mediaDevice
callback: (id< JRTCRoomCallback > __nonnull)  callback 

创建 JRTCRoom 对象

JRTCRoom 的所有接口函数,如无特殊说明,都建议在主线程调用

注解
参数
clientJRTCClient 对象
mediaDeviceJRTCMediaDevice 对象
callbackJRTCRoomCallback 代理对象,用于实现 JRTCRoomCallback 事件
返回
JRTCRoom 对象
异常
JRTCClient、JRTCMediaDevice、JRTCRoomCallback 任意一个参数传空就会出现调用失败

◆ destroy

+ (void) destroy

销毁 JRTCRoom 对象

注解
  • 该方法为同步调用,需要等待 JRTCRoom 实例资源释放后才能执行其他操作,调用此方法后,你将无法再使用 JRTCRoom 的其它方法和回调。
  • 我们 不建议 在 JRTCSDK 的回调中调用此方法销毁 JRTCRoom 对象,否则可能出现崩溃。
  • 如需在销毁后再次创建 JRTCRoom 实例,需要等待 destroy 方法执行结束后再创建实例。

◆ enableAudioOutput:

- (bool) enableAudioOutput: (bool)  enable

开启/关闭音频输出

  • 该方法可实现本地静音功能。关闭时听不到房间内其他成员的声音,不影响其他成员;开启时可以听到其他成员声音
  • 初始化 JRTCRoom 时,音频输出功能默认是开启的。若要加入房间时听不见其他成员的声音,建议在调用 join 加入房间前设置
    参数
    enable是否开启音频输出
  • true: 开启音频输出
  • false: 关闭音频输出
    返回
    接口调用结果
  • true: 接口调用成功,会收到 onRoomPropertyChanged 回调
  • false: 接口调用异常

◆ enableCdn:keyInterval:

- (bool) enableCdn: (bool)  enable
keyInterval: (int)  keyInterval 

开启/关闭Cdn推流

参数
enable开启/关闭Cdn推流
  • true: 开启 Cdn 推流
  • false: 关闭 Cdn 推流
keyInterval推流关键帧间隔(毫秒),当参数 enable 为 true 时有效,有效值需要>=1000
返回
接口调用结果

◆ enableLocalRecord:recordParam:

- (bool) enableLocalRecord: (bool)  enable
recordParam: (JRTCRecordLocalParam *__nullable)  recordParam 

开启/关闭本地录制

参数
enable开启或关闭本地录制
  • true: 开启本地录制
  • false: 关闭本地录制
recordParam本地录制参数配置,当 enable == true 时,JRTCRecordLocalParam.filePath 必须设置,其余参数不设置则使用默认配置;当 enable == false 时,recordParam 可传 nil
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ enableRemoteRecord:recordParam:

- (bool) enableRemoteRecord: (bool)  enable
recordParam: (JRTCRecordRemoteParam *__nullable)  recordParam 

开启/关闭远程录制

可通过 recordState 属性获取当前服务器录制状态。

参数
enable开启或关闭远程录制
  • true: 开启视频录制
  • false: 关闭视频录制
recordParam录制参数,详见 JRTCRecordRemoteParam。当 enable == false 时,可传 nil;当 enable == true 且按照默认配置进行录制可传 nil
返回
接口调用结果

◆ enableScreenShare:appGroupId:preferredExtension:

- (bool) enableScreenShare: (bool)  enable
appGroupId: (NSString *__nullable)  appGroupId
preferredExtension: (NSString *__nullable)  preferredExtension 

开启/关闭屏幕共享

注解
iOS 12.0 及以下(包含 iOS13.0)只支持应用内共享,iOS 12.0 及以上(不包含 iOS 13.0)支持应用外共享,需要集成屏幕采集插件 调用此方法后成功,界面上会拉起屏幕采集插件,需手动点击"开始直播"按钮进行屏幕共享,开启成功后,房间中的所有成员会收到 room: onRoomPropertyChanged 回调。
参数
enable开启或关闭屏幕共享
  • true: 开启屏幕共享
  • false: 关闭屏幕共享
appGroupId屏幕采集插件和应用所处于的同一个 groupId,如果是关闭屏幕共享可以传空,iOS 12.0 及以上(不包含 iOS 13.0 )需要传,iOS 12.0 以下传空
preferredExtension要打开的屏幕共享插件的 ID,如果是关闭屏幕共享可以传空,iOS 12.0 及以上(不包含 iOS 13.0 )需要传,iOS 12.0 以下传空
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ enableUploadAudioStream:

- (bool) enableUploadAudioStream: (bool)  enable

开启/关闭发送本地音频流

  • 调用该方法可开启或关闭发送本地音频流。开启后,房间成员将听见本端声音;关闭后,房间成员将听不见本端声音
  • 房间中调用此方法不影响接收远端音频
  • 初始化 JRTCRoom 时,默认不发送本地音频流。若要加入房间时,让房间内其他成员听见本端声音,需要在调用 join 加入房间前设置
  • 该方法在房间内和房间外均可调用,且在离开房间后该设置仍然有效。也就是说这一次设置了开启发送本地音频流,那么在下一次加入房间时默认会开启发送本地音频流
  • 会议中也可调用此方法开启或关闭发送本地音频流,服务器会更新状态并同步给其他房间成员,即房间中所有成员都会收到 onParticipantUpdate 回调
参数
enable开启/关闭发送本地音频流
  • true: 开启,即发送本地音频流
  • false: 关闭,即不发送本地音频流
返回
接口调用结果
  • true: 接口调用成功
    • 在调用此方法时,用户未加入房间,不会收到回调
    • 在调用此方法时,用户已在房间中,会收到 onRoomPropertyChanged 回调
  • false: 接口调用异常

◆ enableUploadVideoStream:

- (bool) enableUploadVideoStream: (bool)  enable

开启/关闭发送本地视频流

  • 调用该方法可开启或关闭发送本地视频流。开启后,房间成员将可以看见本端视频画面;关闭后,房间成员将看不见本端视频画面
  • 房间中调用此方法不影响接收远端视频
  • 初始化 JRTCRoom 时,默认发送本地视频流。若要加入房间时,让房间内其他成员看见本端视频画面,建议在调用 join 加入房间前设置
  • 该方法在房间内和房间外均可调用,且在离开房间后该设置仍然有效。也就是说这一次设置了关闭发送本地视频流,那么在下一次加入房间时默认会关闭发送本地视频流
  • 会议中也可调用此方法开启或关闭发送本地视频流,服务器会更新状态并同步给其他房间成员,即房间中所有成员都会收到 onParticipantUpdate 回调
参数
enable是否发送本地视频流
  • true: 开启,即发送本地视频流
  • false: 关闭,即不发送本地视频流
返回
接口调用结果
  • true: 接口调用成功
    • 在调用此方法时,用户不在房间中,不会收到回调
    • 在调用此方法时,用户在房间中,会收到 onRoomPropertyChanged 回调
  • false: 接口调用异常

◆ getCustomProperty:

- (NSString *__nullable) getCustomProperty: (NSString *__nonnull)  key

获取自定义房间属性

调用此接口来获取自定义房间属性

参数
key自定义属性 key
返回
属性值

◆ getJsonStats

- (NSString *__nullable) getJsonStats

获取天赛实时统计信息

以Json字符串形式返回,包含以下信息:
{ "localActor": "[username:2333@100645.cloud.justalk.com]", // actorID "sendBWE": "1440", // 发送带宽估计 "recvBWE": "929", // 接收带宽估计 "sendBr": "16", // 发送码率 "recvBr": "772", // 接收码率 "sendJitter": "1", // 发送jitter "recvJitter": "0", // 接收jitter "sendLossRate": "0", // 发送丢包率 "recvLossRate": "0", // 接收丢包率 "encodeTime": "0", // 编码时长 "rtt":"5", // 往返延时 "audioSendBr": "19", // 音频发送码率 "videoSendBr": "0", // 视频发送码率 "audioLevel": "58", // 音量 "event":"" }

◆ getParticipant:

- (JRTCRoomParticipant *__nullable) getParticipant: (NSString *__nonnull)  userId

根据用户标识获取房间成员

参数
userId用户唯一标识
返回
  • 房间内无此用户标识的用户: nil
  • 房间内有此用户标识的用户: JRTCRoomParticipant 对象

◆ getStatistics

- (NSString *__nullable) getStatistics

获取统计信息

以字符串形式返回,其中包含 "Config", "Network","Transport" 和 "Participants" 4个节点,统计信息具体内容如下:
{ "Config": // 音视频设置信息 { "Audio Config: // 音频设置 { "SRTP": off, // 是否对音频RTP数据加密,以及加密会显示使用的加密协议,加密协议两端一致才会音频互通正常 "Codec": opus, // 本端设置的音频编码 "Payload": 116, // 音频payload的大小 "Bitrate": 16000, // 音频码率 "Pkt Len": 60, // 音频包长 "Nack": off, // 丢包是否允许数据包重传 "RTX": off, // 是否允许RTX技术 "FEC/RED": off, // 是否开启FEC "AEC": on, // 是否开启回声消除 "Mode": OS, // AEC模式 "HowlSupp": Auto, // AEC HowlSupp模式 "Sts": Auto, // AEC Sts模式 "AGC": on, // 是否开启发送端自动增益 "Mode": Fixed, // 发送端AGC Mode "Target": 3, // 发送端AGC Target "Gain": 9, // 接收端AGC Gain "Rx AGC": off, // 是否开启接收端自动增益 "Mode": Fixed, // 接收端AGC Mode "Target": 3, // 接收端AGC Target "Gain": 9, // 接收端AGC Gain "VAD": off, // 是否开启VAD "Mode": Mid, // VAD Mode "ANR": off, // 是否开启发送端噪音抑制 "Mode": High, // ANR mode "Noise": N/A, // 噪音音量 "SNR": N/A, // 信噪比 "Rx ANR": off, // 是否开启接收端噪音抑制 "Mode": Low, // 接收端ANR mode "ARS": off, // 是否开启音频码率控制 "BR Min": N/A, // ARS码率最小值 "BR Max": N/A // ARS码率最大值 }, "Video Config": // 视频设置 { "SRTP": off, // 是否对音频RTP数据加密,以及加密会显示使用的加密协议,加密协议两端一致才会音频互通正常 "Codec": H264-SVC, // 双方通话采用的编解码类型 "Payload": 125, // 视频Payload的大小 "Bitrate": 2250, // 视频码率,单位kbps "Framerate": 24, // 视频帧率,单位fps "Resolution": 1280x720, // 视频分辨率 "FEC": on|124|123, // FEC是否打开和payload的类型号 "FIR": off, // 是否允许重发关键帧 "Key Interval": 0, // 允许的最小关键帧间隔 "Repeat": 0, // 关键帧丢失是否允许重发 "NACK": off, // 丢包是否允许数据包重传 "RTX": off, // 是否允许RTX技术,RTX的payload类型 "TMMBR": off, // 是否允许带宽估计 "RPSI": off, // 是否允许RPSI技术 "Small NALU": on, // 是否允许NALU技术 "ARS": off, // 是否开启ARS自动码率检测 "BR Min": 10, // ARS发送码率下限 "BR Max": 2000, // ARS发送码率上限 "FR Min": 1, // ARS发送帧速率下限 "FR Max": 30, // ARS发送帧速率上限 "Res. Ctrl": off, // 是否允许分辨率控制 "Res. Mode": 0, // 分辨率Mode "Fr Ctrl": on, // 是否允许帧速率控制 "CPU Load Ctrl": off, // 是否允许CPU控制 "Target": 80, // CPU控制的最大使用率 "Bw Efficient": off, // 是否采用节省带宽模式 "Error Conceal": off, // 是否允许错误隐藏技术,在解码出错的时候采用 "Enhance color": off, // 是否采用颜色增强技术 "Boost bright": off, // 是否采用亮度增强技术 "Boost contrast": off, // 是否采用对比度增强技术 "RTP Ext": CVO, // 使用的RTP扩展的类型 "Render Name": N/A, // 渲染图像的名字 "SVC": "320 180 250 640 360 600 1280 720 1400", // 会议SVC配置 "TemporalLayers": 4, // 取值1、2、3、4,会议时间层设置 "PreferMode":Clear // 偏好设置 } }, "Network": // 网络统计信息 { "Send Statistic: // 数据发送统计信息 { "Packets": 181|1305|0|0, // 发送的数据包的个数。正常包个数 | 探测包个数 | RED包个数 | NACK包个数 "RTT": 4, // 网络双向延时的时间,单位为毫秒 "Jitter": 2, // 网络的扰动,表征数据包抖动的时间,单位毫秒 "Lost": 2, // 丢失的数据包的个数 "LostRate": 0, // 当前的丢包率,单位百分比 "RelayLost": 0, // 服务器转发丢包率 "RelayRtt": 0, // 服务器转发往返时延,单位为毫秒 "BitRate/BWE": 16/1345, // BitRate表示当前发送的数据包的码率,单位kbps;BWE表示当前发送带宽的估计值 "AudioSend": 0|0, // 实际发送音频包次数|估计发送音频包次数 "VideoSend": 0|0, // 实际发送视频包次数|估计发送视频包次数 "ScreenSend": 0|0, // 实际发送屏幕共享包次数|估计发送屏幕共享包次数 "MaxPredKbps": 100, // 发送最大需求码率 "Server(102679111220103708)": // 选用的第一个服务器 [ 2211(1): BWE(1345|697) LOSS(0|0) OUT(A:37) IN(A:0;) ] }, "Recv Statistic": // 数据接收统计信息 { "Packets": 1423|675|0|0, // 收到的数据包的个数。正常包个数 | 探测包个数 | RED包个数 | NACK包个数 "Jitter": 1, // 网络的扰动,表征数据包乱序的时间,单位毫秒 "Lost": 0, // 丢失的数据包的个数 "Lost Ratio": 0, // 当前的丢包率,单位百分比 "BitRate/BWE":178/2291, // BitRate表示当前接收的数据包的码率,单位kbps;BWE表示当前接收带宽的估计值 "Server(102679111220103708)": // 选用的第一个服务器 [ 2211(3): BWE(1979|2150) LOSS(0|0) OUT(A:37;FPS:24,FEC:10,SUB:00f0=3456) IN(A:17;V:2273=2211[00f0]2273) ] }, } "Transport": // 运输通道 { "Local": 2.1923737535:32414, // 本地地址 "Remote": 2:11023, // 远端地址 "LastPaths": 2,2, // 最后使用通道 "Path": 2 [udp], // 通道名 "Step1": Delay/Loss(S/R): 4/0/0, // 通道质量 "Cost": 7** (best: -1) // 通道分数

}, "Participants": { "2333": // 成员为自己 { "Audio Sending Stats": // 音频发送数据统计 { "Packets": 143, // 发送的数据包的个数 "BitRate": 18.5, // 发送的数据包的码率,单位kbps "FecPrecent": 0 // 音频Fec保护百分比,N/A表示未开启FEC保护 }, "Video Sending Stats": // 视频发送数据统计 { "Packets": 19502, // 发送的数据包的个数 "Capture Res": 640x360, // 视频采集分辨率 "Capture Fr": 30, // 视频采集帧率 "FPS/IDR": [0|0|24|0]/3, // 当前视频发送帧速/已发送的视频关键帧数 "Resolution": 1280x720[0|0|0], // 当前发送图像最大尺寸。[]中为每种尺寸的帧率,取值范围为0到f(十六进制),0表示该层视频未被发送, 值越大表示该层视频帧率越高; "Bitrate/Setrate": 0/2250, // Bitrate表示当前发送的数据包的码率,单位kbps; Setrate表示视频编码的目标码率,单位kbps。 "QP": 20, // 发送当前图像的量化步长(0-51),越小图像画质越好。 "EncodeTime": 10, // 当前编码时间,可以体现终端编码时占用的CPU性能,越大表示CPU占有越高,单位毫秒 "Codec": H264-SVC, // 采用的编解码类型 "FecPrecent": 20 // 视频Fec保护百分比,N/A表示未开启FEC保护 }, "Be Subscribed Stats": // 被订阅统计信息 { "Audio": true, // 音频是否被订阅 "Video": [0|0|F|0] // [S0|S1|S2|S3]表示4个空间层被订阅 }, "Publish Stats": // 当前音视频发布状态 { "Audio": true, // 当前音频发布状态 "Video": true // 当前视频发布状态 } }, "6666": // 成员不是自己 { "Audio Receiving Stats": // 音频接收统计信息 { "Packets": 40243, // 接收的数据包的个数 "BitRate": 18.5, // 当前接收的数据包的码率,单位kbps。 "EpdRate/lr/dc": 0/0/0, // expand rate/loss rate/discard rate。neteq buffer中的扩展比例/丢包比例/丢弃比例 }, "Video Receiving Stats": // 视频接收统计信息 { "Packets": 19502, // 接收的数据包的个数 "BitRate": 161, // 当前发送的数据包的码率,单位kbps "FPS/FIR": 24/0, // 当前视频接收帧率/视频关键帧请求个数 "Resolution": 1280x720, // 当前接收分辨率 "Render FR": 24, // 当前渲染帧速率 "Codec": H264-SVC, // 采用的编解码类型 "PvMos": 4.9, // 表示过去5s平均流畅度MOS分,每5s更新一次。体现视频画面的流畅程度。1到5分,1分最差,5分最好 "SMOS": 5, // 表示当前清晰度MOS分。体现视频画面的清晰程度。1到5分,1分最差,5分最好。前5s是0,是正常现象,因为PvMos还没有值 }, "Subscribed Stats": // 订阅统计信息 { "Channel Audio": true, // 当前是否发布音频 "Audio": true, // 当前音频订阅状态 "Video": [0|0|F|0] // [S0|S1|S2|S3]表示4个空间层被订阅 } } } }

◆ inviteSipUser:

- (int) inviteSipUser: (JRTCSipInviteParam *__nonnull)  sipParam

邀请Sip用户,一般用于对接落地网关等

参数
sipParam邀请sip用户入会的配置参数,详见 JRTCSipInviteParam
返回
接口调用结果

◆ join:joinParam:

- (bool) join: (NSString *__nonnull)  roomId
joinParam: (JRTCRoomJoinParam *__nullable)  joinParam 

加入房间

该方法让用户加入通话房间,在同一个房间内的用户可以互相通话。
如果用户已在房间中,必须退出当前房间,即处于空闲状态,才能进入其他房间,否则将直接返回 false,且不会收到回调通知。

参数
roomId房间号
joinParamJRTCRoomJoinParam 对象,传 nil 则使用默认配置
返回
接口调用结果
  • true: 接口调用成功,会收到 onJoin 回调
  • false: 接口调用异常

◆ leave

- (bool) leave

离开房间

返回
接口调用结果
  • true: 接口调用成功,非空闲状态下,会收到 onLeave 回调
  • false: 接口调用异常

◆ query:

- (int) query: (NSString *__nonnull)  roomId

查询房间相关信息

调用此接口可以查询房间相关信息,例如房间是否存在,房间人数等,结果通过 onQuery 回调通知

参数
roomId房间标识
返回
操作id,与 onQuery 回调中的 operationId 对应

◆ requestScreenVideo:

- (bool) requestScreenVideo: (JRTCVideoSize *__nonnull)  videoSize

订阅屏幕共享的视频流

参数
videoSize视频请求的尺寸
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ requestVideo:videoSize:

- (bool) requestVideo: (JRTCRoomParticipant *__nonnull)  participant
videoSize: (JRTCVideoSize *__nonnull)  videoSize 

订阅房间中其他用户的视频流

参数
participantJRTCRoomParticipant 成员对象
videoSize视频请求的尺寸,详见 JRTCVideoSize
返回
接口调用结果

◆ sendAudioEmptyPack:

- (bool) sendAudioEmptyPack: (bool)  b

发送音频空包

该接口不会导致成员的 audio 属性变化,发送音频空包不代表停止发送音频流。

参数
b音频发送包是否为空包
  • true: 发送音频空包
  • false: 发送正常音频包
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ sendMessage:content:toUserId:

- (bool) sendMessage: (NSString *__nonnull)  type
content: (NSString *__nonnull)  content
toUserId: (NSString *__nullable)  toUserId 

发送房间消息,消息内容不能大于4K

消息接收方都会收到 onMessageReceived 回调

参数
type消息类型
content消息内容
toUserId指定成员的用户ID,传 nil 即给通话中全部成员发送消息
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ sendVideoEmptyPack:

- (bool) sendVideoEmptyPack: (bool)  b

发送视频空包

该接口不会导致成员的 video 属性变化,发送视频空包不代表停止发送视频流。

参数
b视频发送包是否为空包
  • true: 发送视频空包
  • false: 发送正常视频包
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ setCustomProperty:forKey:

- (bool) setCustomProperty: (NSString *__nonnull)  value
forKey: (NSString *__nonnull)  key 

设置房间中的自定义属性

参数
value自定义属性的value值
key自定义属性的key值
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ setRatio:

- (bool) setRatio: (float)  ratio

设置本端视频宽高比

将自己的视频采集根据宽高比裁剪后进行发送,通话中其他成员收到的画面将是裁剪后的比例。
该方法不影响其他成员的画面在本端的显示比例,也不影响其他成员相互之间的画面显示比例。
必须 加入房间后 设置才能生效,即收到 onJoin 回调后设置才生效。

参数
ratio视频宽高比
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ setVideoDot:info:

- (bool) setVideoDot: (NSString *__nonnull)  timeSpan
info: (NSString *__nonnull)  info 

视频打点

参数
timespan时间戳
info打点信息
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ unRequestScreenVideo

- (bool) unRequestScreenVideo

取消订阅屏幕共享的视频流

返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

◆ unRequestVideo:

- (bool) unRequestVideo: (JRTCRoomParticipant *__nonnull)  participant

取消订阅房间中其他用户的视频流

参数
participantJRTCRoomParticipant 房间中其他成员对象
返回
调用是否正常
  • true: 正常执行调用流程,会收到 onParticipantUpdate 回调
  • false: 调用失败,不会收到回调通知

◆ updateLocalRecordLayout:

- (bool) updateLocalRecordLayout: (NSArray< JRTCRecordLocalLayout * > *__nonnull)  layoutList

更新本地录制自定义布局

参数
layoutList需要更新的布局列表
返回
接口调用结果
  • true: 接口调用成功
  • false: 接口调用异常

属性说明

◆ audioOutput

- (bool) audioOutput
readnonatomicassign

是否音频输出

本地没有音频输出的话,就听不到房间内其他成员的声音了

  • true: 输出中
  • false: 未输出

◆ canBindCamera

- (bool) canBindCamera
readwritenonatomicassign

是否可以绑定摄像头发送流

  • true: 可以绑定摄像头发送流
  • false: 不可以绑定摄像头发送流

◆ cdnState

- (CDNState) cdnState
readnonatomicassign

获取CDN推流状态,参见:

  • CdnStateNone : 无法进行Cdn推流。用户不在房间中或者加入房间时没有设置cdn推流参数
  • CdnStateReady : 可以开启Cdn推流。用户在加入房间时设置了cdn推流参数,并且没有在推流
  • CdnStateRunning : Cdn推流中。用户在加入房间时设置了cdn推流参数,并且正在cdn推流中

◆ localRecording

- (bool) localRecording
readnonatomicassign

是否正在本地录制

  • true: 本地录制中
  • false: 未进行本地录制

◆ notifyVolumeChange

- (bool) notifyVolumeChange
readwritenonatomicassign

设置是否上报音量变化,音量变化会比较频繁,默认为 true,不需要则设置为 false

  • true: 音量上报
  • false: 音量不上报

◆ participants

- (NSArray*) participants
readnonatomicstrong

获得房间中的所有成员

◆ password

- (NSString*) password
readnonatomiccopy

房间密码

◆ remoteRecordState

- (RecordState) remoteRecordState
readnonatomicassign

获取远程视频录制状态,参见:

  • RecordStateNone : 无法进行视频录制。用户不在房间中或者加入房间时没有设置视频录制参数
  • RecordStateReady : 可以开启视频录制。用户在加入房间时设置了录制参数,并且没有在录制视频
  • RecordStateRunning : 视频录制中。用户在加入房间时设置了录制参数,并且正在视频录制中

◆ roomHandle

- (unsigned int) roomHandle
readnonatomicassign

本地房间句柄

◆ roomId

- (NSString*) roomId
readnonatomiccopy

房间标识

如果加入房间时使用的是 uri 模式,即调用 join 方法加入房间时,uriMode 为 true,则获取的房间标识为 ""

◆ shareStreamId

- (NSString*) shareStreamId
readnonatomiccopy

屏幕共享时的视频流ID,无屏幕共享时为 nil

调用 startVideo 接口渲染通话中其他成员的屏幕共享画面时使用。

◆ shareUserId

- (NSString*) shareUserId
readnonatomiccopy

发起屏幕共享者的用户ID,无屏幕共享时为 nil

可用来判断当前通话中是否有成员发起屏幕共享。

◆ state

- (RoomState) state
readnonatomicassign

自己当前在房间中的状态

当前在房间中的状态,参见:

◆ title

- (NSString*) title
readnonatomiccopy

房间标题

◆ uploadLocalAudio

- (bool) uploadLocalAudio
readnonatomicassign

是否上传本地音频数据

  • true: 上传中
  • false: 未上传

◆ uploadLocalVideo

- (bool) uploadLocalVideo
readnonatomicassign

是否上传本地视频数据

  • true: 上传中
  • false: 未上传