@protocol RTSDelegate <NSObject>
objectivecRTSDelegate 协议包含了SDK提供的回调方法,SDK通过代理向应用程序上报一些运行时事件
- (void)rtsEngine:(RTS * _Nonnull)engine onConnectionStateChanged:(ByteRTCConnectionState)state;
objectivecSDK 与信令服务器连接状态改变回调。连接状态改变时触发。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | RTS* | RTS 对象。 |
| state | ByteRTCConnectionState | 当前 SDK 与信令服务器的连接状态,详见 ByteRTCConnectionState |
- (void)rtsEngine:(RTS * _Nonnull)engine onNetworkTypeChanged:(ByteRTCNetworkType)type;
objectivecSDK 当前网络连接类型改变回调。当 SDK 的当前网络连接类型发生改变时回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | RTS* | RTS 对象。 |
| type | ByteRTCNetworkType | SDK 当前的网络连接类型: • -1: 网络连接类型未知。 • 0: 网络连接已断开。 • 1: LAN • 2: Wi-Fi,包含热点 • 3: 2G 移动网络 • 4: 3G 移动网络 • 5: 4G 移动网络 • 6: 5G 移动网络 |
- (void)rtsEngine:(RTS *_Nonnull)engine onCreateRoomStateChanged:(NSString * _Nonnull)roomId errorCode:(NSInteger)errorCode;
objectivec创建房间失败回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | NSString* | 房间 ID。 |
| errorCode | NSInteger | 创建房间错误码: • -1007:无效 roomId; • -1013:相同 roomId 的房间已存在。 |
- (void)rtsEngine:(RTS * _Nonnull)engine onSysStats:(const ByteRTCSysStats * _Nonnull)stats;
objectivec周期性(2s)地发出回调,报告当前cpu与memory使用率
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | RTS* | RTS 对象 |
| stats | const ByteRTCSysStats* | 返回包含当前系统状态信息的结构体,详见 ByteRTCSysStats |
- (void)rtsEngine:(RTS * _Nonnull)engine onLoginResult:(NSString * _Nonnull)uid errorCode:(ByteRTCLoginErrorCode)errorCode elapsed:(NSInteger)elapsed;
objectivec登录结果回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | RTS* | RTS 对象 |
| uid | NSString* | 登录用户 ID |
| errorCode | ByteRTCLoginErrorCode | 登录结果 详见 ByteRTCLoginErrorCode。 |
| elapsed | NSInteger | 从调用 login:uid: 接口开始到返回结果所用时长。 单位为 ms。 |
注意
调用 login:uid: 后,会收到此回调。
- (void)rtsEngineOnLogout:(RTS * _Nonnull)engine;
objectivec登出结果回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | RTS* | RTS 对象 |
注意
调用 logout 后,会收到此回调。
- (void)rtsEngine:(RTS * _Nonnull)engine onServerParamsSetResult:(NSInteger)errorCode;
objectivec设置应用服务器参数的返回结果
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | RTS* | RTS 对象 |
| errorCode | NSInteger | 设置结果 • 返回 200,设置成功 • 返回其他,设置失败 |
注意
调用 setServerParams:url: 后,会收到此回调。
- (void)rtsEngine:(RTS * _Nonnull)engine onGetPeerOnlineStatus:(NSString * _Nonnull)peerUserId status:(ByteRTCUserOnlineStatus)status;
objectivec查询对端或本端用户登录状态的返回结果
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | RTS* | RTS 对象 |
| peerUserId | NSString* | 需要查询的用户 ID |
| status | ByteRTCUserOnlineStatus | 查询的用户登录状态,详见 ByteRTCUserOnlineStatus. |
注意
必须先调用 getPeerOnlineStatus:,才能收到此回调。
- (void)rtsEngine:(RTS * _Nonnull)engine onMessageReceived:(NSString * _Nonnull)uid message:(NSString * _Nonnull)message;
objectivec收到远端用户调用 sendMessage:message:config: 发来的文本消息时,会收到此回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | RTS* | RTS 对象 |
| uid | NSString* | 消息发送者 ID |
| message | NSString* | 收到的文本消息内容 |
- (void)rtsEngine:(RTS * _Nonnull)engine onBinaryMessageReceived:(NSString * _Nonnull)uid message:(NSData * _Nonnull)message;
objectivec收到房间外用户调用 sendBinaryMessage:message:config: 发来的二进制消息时,会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | RTS* | RTS 对象 |
| uid | NSString* | 消息发送者 ID |
| message | NSData* | 收到的二进制消息内容 |
- (void)rtsEngine:(RTS * _Nonnull)engine onMessageSendResult:(int64_t)msgid error:(ByteRTCUserMessageSendResult)error;
objectivec给指定的用户发送消息的回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | RTS* | RTS 对象 |
| msgid | int64_t | 本条消息的 ID。所有的 P2P 和 P2Server 消息共用一个 ID 序列。 |
| error | ByteRTCUserMessageSendResult | 消息发送结果,详见 ByteRTCUserMessageSendResult。 |
注意
当调用 sendMessage:message:config: 或 sendBinaryMessage:message:config: 发送消息后,会收到此回调。
- (void)rtsEngine:(RTS * _Nonnull)engine onServerMessageSendResult:(int64_t)msgid error:(ByteRTCUserMessageSendResult)error message:(NSData * _Nonnull)message;
objectivec给应用服务器发送消息的回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | RTS* | RTS 对象 |
| msgid | int64_t | 本条消息的 ID。所有的 P2P 和 P2Server 消息共用一个 ID 序列。 |
| error | ByteRTCUserMessageSendResult | 消息发送结果。详见 ByteRTCUserMessageSendResult。 |
注意
当调用 sendServerMessage: 或 sendServerBinaryMessage: 接口发送消息后,会收到此回调。
@protocol RTSRoomDelegate <NSObject>
objectivec语音房间事件回调接口
- (void)rtsRoom:(RTSRoom * _Nonnull)rtcRoom onRoomStateChanged:(NSString * _Nonnull)roomId withUid:(nonnull NSString *)uid state:(NSInteger)state extraInfo:(nonnull NSString *)extraInfo;
objectivec房间状态改变回调,加入房间、离开房间、发生房间相关的警告或错误时会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | NSString* | 房间 ID。 |
| uid | NSString* | 用户 ID。 |
| state | NSInteger | 房间状态码。 • 0: 成功。 • !0: 失败,具体原因包括 - -1007:无效 roomId; - -1013:相同 roomId 的房间已存在; - -2001:初次进房或者由于网络状况不佳断网重连时,由于服务器错误导致进房失败,SDK 会自动重试进房; - -2016:已存在相同 roomId 的房间,新创建的房间实例已替换旧房间实例。 |
| extraInfo | NSString* | 额外信息,如 {"elapsed":1187,"join_type":0}。join_type 表示加入房间的类型,0为首次进房,1为重连进房。elapsed表示加入房间耗时,即本地用户从调用 joinRoom 到加入房间成功所经历的时间间隔,单位为 ms。 |
- (void)rtsRoomOnLeaveRoom:(RTSRoom *_Nonnull)rtsRoom;
objectivec离开房间成功回调。
用户调用 leaveRoom 方法后,SDK 会停止房间内消息的收发,并在释放所有相关资源后,通过此回调通知用户离开房间成功。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| rtsRoom | RTSRoom* | RTCRoom 对象。 |
注意
用户调用 leaveRoom 方法离开房间后,如果立即销毁 RTC 引擎,则将无法收到此回调事件。
- (void)rtsRoom:(RTSRoom * _Nonnull)rtcRoom onUserJoined:(NSString * _Nonnull)uid elapsed:(NSInteger)elapsed;
objectivec远端用户首次进房,或断网后重新连入房间时,房间内其他用户将收到该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| rtcRoom | RTSRoom* | RTSRoom 对象。 |
| uid | NSString* | 用户 ID。 |
| elapsed | NSInteger | 保留字段,无意义 |
- (void)rtsRoom:(RTSRoom * _Nonnull)rtcRoom onUserLeave:(NSString * _Nonnull)uid reason:(ByteRTCUserOfflineReason)reason;
objectivec远端用户离开房间时,本地用户会收到此事件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| rtcRoom | RTSRoom* | RTSRoom 对象。 |
| uid | NSString* | 离开房间的远端用户 ID 。 |
| reason | ByteRTCUserOfflineReason | 用户离开房间的原因,参看 ByteRTCUserOfflineReason。 • 0: 远端用户调用 leaveRoom 主动退出房间。 • 1: 远端用户因 Token 过期或网络原因等掉线。 • 2: 服务端调用 OpenAPI 将远端用户踢出房间。 |
- (void)rtsRoom:(RTSRoom * _Nonnull)rtcRoom onRoomMessageReceived:(NSString * _Nonnull)uid message:(NSString * _Nonnull)message;
objectivec收到房间中调用 sendRoomMessage: 发送的广播文本消息时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| rtcRoom | RTSRoom* | RTSRoom 对象 |
| uid | NSString* | 消息发送者 ID 。 |
| message | NSString* | 收到的文本消息内容。 |
- (void)rtsRoom:(RTSRoom * _Nonnull)rtcRoom onRoomBinaryMessageReceived:(NSString * _Nonnull)uid message:(NSData * _Nonnull)message;
objectivec收到房间中调用 sendRoomBinaryMessage: 发送的广播二进制消息时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| rtcRoom | RTSRoom* | RTSRoom 对象 |
| uid | NSString* | 消息发送者 ID 。 |
| message | NSData* | 收到的二进制消息内容。 |
- (void)rtsRoom:(RTSRoom * _Nonnull)rtcRoom onRoomMessageSendResult:(int64_t)msgid error:(ByteRTCRoomMessageSendResult)error;
objectivec向房间内所有用户群发文本或二进制消息后,消息发送方会收到该消息发送结果回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| rtcRoom | RTSRoom* | RTSRoom 对象。 |
| msgid | int64_t | 本条消息的 ID。 |
| error | ByteRTCRoomMessageSendResult | 消息发送结果,详见 ByteRTCRoomMessageSendResult |
注意
@protocol ByteRTCEncryptHandler <NSObject>
objectivec自定义加密接口
| 返回 | 名称 |
|---|---|
| NSData* | ByteRTCEncryptRawData: |
| NSData* | ByteRTCDecryptRawData: |
- (NSData * _Nonnull) ByteRTCEncryptRawData:(NSData * _Nonnull)rawData;
objectivec自定义加密。
使用设定的自定义加密方式,对传输前的音视频帧数据进行加密。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| rawData | NSData* | 原始音视频帧数据 |
返回值
加密后的数据
注意
setCustomizeEncryptHandler:。- (NSData * _Nonnull) ByteRTCDecryptRawData:(NSData * _Nonnull)rawData;
objectivec自定义解密。
对自定义加密后的音视频帧数据进行解密。关于自定义加密,参看 ByteRTCEncryptRawData:。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| rawData | NSData* | 收到的已加密的音视频帧数据 |
返回值
解密后的数据
注意
setCustomizeEncryptHandler:。