如果你希望从此前版本的 iOS 客户端 SDK 升级到最新的客户端 SDK,请在工程文件中,替换最新的客户端 SDK 文件,并参考本文完成 API,回调,参数类型等的替换。
升级过程中,你可能需要参考老版本 API 文档归档。
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 方法 | 备注 |
|---|---|---|---|
| 参数数据结构改动 | 音频管理 | (void)enableAudioPropertiesReport:(ByteRTCAudioPropertiesConfig* _Nonnull)config; | 数据结构中,新增参数:ByteRTCAudioPropertiesMode |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 成员变量增删 | ByteRTCAudioScenarioType | 新增高音质畅聊模式:ByteRTCAudioScenarioHighqualityChat |
| 枚举值增删 | ByteRTCAudioFrameMethod | 新增获取软件耳返音频:ByteRTCAudioFrameProcessorEarMonitor |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 废弃原方法 | 音频处理 | (void)muteAudioPlayback:(ByteRTCMuteState)muteState; | (void)setPlaybackVolume:(NSInteger)volume; | 设置远端用户音量为 0 即可停止播放本地收到的音频流 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
合并、名称和参数变化 | 音视频处理 |
|
该版本部分头文件名称及路径发生变化,请参照下表在工程文件中进行调整:
| 平台 | 3.42 | 3.43 | 备注 |
|---|---|---|---|
| iOS | ../VolcEngineRTC.framework/Headers/objc/rtc/ByteRTCRoom.h | ../VolcEngineRTC.framework/Headers/objc/ByteRTCRoom.h | 迁移至上级目录 objc 中 |
| ../VolcEngineRTC.framework/Headers/objc/rtc/ByteRTCEngineKit.h | ../VolcEngineRTC.framework/Headers/objc/ByteRTCVideo.h | 文件名变更,并迁移至上级目录 objc 中 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 基础类名变更 | 所有模块 | @class ByteRTCEngineKit; | @class RTCVideo; | |
| 名称和参数变更 | 引擎管理 | (id _Nonnull)initWithAppId:(NSString * _Nonnull)appId delegate:(id<ByteRTCEngineDelegate> _Nullable)delegate parameters:(NSDictionary* _Nullable)parameters; | (RTCVideo * _Nullable) createRTCVideo:(NSString * _Nonnull)appId delegate:(id<RTCVideoDelagate> _Nullable)delegate parameters:(NSDictionary * _Nonnull)parameters; | |
(void)destroyEngine; | (void)destroyRTCVideo:(RTCVideo *_Nonnull)video; | |||
| 多房间 | (ByteRTCRoom * _Nullable)createRtcRoom:(NSString * _Nonnull)roomId; | ( RTCRoom * _Nullable)createRTCRoom:(NSString * _Nonnull)roomId; | ||
| 位置迁移,所属类型变更 | 以下方法从 RTCVideo(原 ByteRTCEngineKit)类下移除,使用 RTCRoom 类中的同名方法代替: | |||
| 参数变更 | 网络管理 | (int)setRemoteUserPriority:(ByteRTCRemoteUserPriority)priority uid:(NSString *_Nonnull)uid; | (int)setRemoteUserPriority:(ByteRTCRemoteUserPriority)priority InRoomId:(NSString *_Nonnull)roomId uid:(NSString *_Nonnull)uid; | |
| 音频管理 | (void)setRemoteAudioPlaybackVolume:(NSString* _Nonnull)uid volume:(int)volume; | (void)setRemoteAudioPlaybackVolume:(NSString *_Nonnull)room_id remoteUid:(NSString *_Nonnull)uid playVolume:(NSInteger)volume; | 新增 room_id 参数,且为必填。 | |
| 删除 | 引擎管理 | (ByteRTCEngineKit * _Nullable) sharedInstance;(void)destroy; | / | |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 基础类名变更 | 所有模块 | @protocol ByteRTCEngineDelegate | @protocol RTCVideoDelagate | |
| 位置迁移,所属类型变化 | 以下回调从 ByteRTCEngineDelegate 类下移除,使用 RTCRoomDelegate(原 ByteRTCRoomDelegate) 类中的同名回调代替: | |||
| 参数变更 | 音频管理 | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onUserStartAudioCapture:(NSString *_Nonnull)userId; | (void)rtcEngine:(RTCVideo * _Nonnull)engine onUserStartAudioCapture:(NSString* _Nonnull)roomId uid:(NSString *_Nonnull)userId; | |
(void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onUserStopAudioCapture:(NSString *_Nonnull)userId; | (void)rtcEngine:(RTCVideo * _Nonnull)engine onUserStopAudioCapture:(NSString* _Nonnull)roomId uid:(NSString *_Nonnull)userId; | |||
| 音视频传输 | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onUserStartVideoCapture:(NSString *_Nonnull)userId; | (void)rtcEngine:(RTCVideo * _Nonnull)engine onUserStartVideoCapture:(NSString * _Nonnull)roomId uid:(NSString * _Nonnull)uid; | ||
(void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onUserStopVideoCapture:(NSString *_Nonnull)userId; | (void)rtcEngine:(RTCVideo * _Nonnull)engine onUserStopVideoCapture:(NSString * _Nonnull)roomId uid:(NSString * _Nonnull)uid; | |||
| 房间管理 | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onAudioFrameSendStateChanged:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFrameSendState)state; | (void)rtcEngine:(RTCVideo *_Nonnull)engine onAudioFrameSendStateChanged:(NSString * _Nonnull)roomId rtcUser:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFrameSendState)state; | ||
(void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onVideoFrameSendStateChanged:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFrameSendState)state; | (void)rtcEngine:(RTCVideo *_Nonnull)engine onVideoFrameSendStateChanged:(NSString * _Nonnull)roomId rtcUser:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFrameSendState)state; | |||
(void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onScreenVideoFrameSendStateChanged:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFrameSendState)state; | (void)rtcEngine:(RTCVideo *_Nonnull)engine onScreenVideoFrameSendStateChanged:(NSString * _Nonnull)roomId rtcUser:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFrameSendState)state; | |||
(void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onAudioFramePlayStateChanged:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFramePlayState)state; | (void)rtcEngine:(RTCVideo *_Nonnull)engine onAudioFramePlayStateChanged:(NSString * _Nonnull)roomId rtcUser:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFramePlayState)state; | |||
(void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onVideoFramePlayStateChanged:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFramePlayState)state; | (void)rtcEngine:(RTCVideo *_Nonnull)engine onVideoFramePlayStateChanged:(NSString * _Nonnull)roomId rtcUser:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFramePlayState)state; | |||
(void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onScreenVideoFramePlayStateChanged:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFramePlayState)state; | (void)rtcEngine:(RTCVideo *_Nonnull)engine onScreenVideoFramePlayStateChanged:(NSString * _Nonnull)roomId rtcUser:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFramePlayState)state; | |||
| 公共流管理 | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onPushPublicStreamResult:(NSString *_Nonnull)publicStreamId errorCode:(int)errorCode; | (void)rtcEngine:(RTCVideo *_Nonnull)engine onPushPublicStreamResult:(NSString *_Nonnull)roomId publiscStreamId:(NSString *_Nonnull)streamId errorCode:(ByteRTCTranscodingError)errorCode; | ||
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 成员变量增删 | ByteRTCVideoSolution | 删除成员变量:mode |
ByteRTCVideoEncoderConfig | 删除成员变量:scaleMode | |
| 枚举值增删 | ByteRTCConnectionState | 增加枚举值:ByteRTCConnectionStateFailed |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | ByteRTCErrorCode | 新增枚举值:-1084 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 基础类名变更 | 所有模块 | @class ByteRTCRoom | @class RTCRoom | |
| 位置迁移,所属类型变更 | 多房间 | 以下方法从 RTCRoom(原 ByteRTCRoom)类下移除,使用 ByteRTCEngineKit 类中的同名方法代替: | 由于新方法变更为从引擎类上调用,因此增加了 roomId 相关的字段,且均为必填字段。 | |
| 名称和参数变更 | 引擎管理 | (int)feedbackTypes:(NSArray* _Nullable)types desc:(NSString* _Nullable)desc; | (int)feedback:(NSArray<ByteRTCProblemOption *> * _Nullable)types desc:(NSString* _Nullable)desc; | |
| 自定义音频处理 | (BOOL)registerLocalAudioProcessor:(_Nullable id<ByteRTCAudioProcessor>) audioProcessor format:(ByteRTCAudioFormat* _Nullable)format; | (BOOL)registerAudioProcessor:(_Nullable id<ByteRTCAudioProcessor>) audioProcessor format:(ByteRTCAudioFormat* _Nullable)format; | ||
| 参数变更 | 消息 | (int64_t)sendUserMessage:(NSString * _Nonnull)uid message:(NSString * _Nonnull)message; | (int64_t)sendUserMessage:(NSString * _Nonnull)uid message:(NSString * _Nonnull)message config:(ByteRTCMessageConfig)config; | |
(int64_t)sendUserBinaryMessage:(NSString * _Nonnull)uid message:(NSData * _Nonnull)message; | (int64_t)sendUserBinaryMessage:(NSString * _Nonnull)uid message:(NSData * _Nonnull)message config:(ByteRTCMessageConfig)config; | |||
(int64_t)sendUserMessageOutsideRoom:(NSString * _Nonnull)userId message:(NSString * _Nonnull)messageStr; | (int64_t)sendUserMessageOutsideRoom:(NSString * _Nonnull)userId message:(NSString * _Nonnull)messageStr config:(ByteRTCMessageConfig)config; | |||
(int64_t)sendUserBinaryMessageOutsideRoom:(NSString * _Nonnull)userId message:(NSData * _Nonnull)messageStr; | (int64_t)sendUserBinaryMessageOutsideRoom:(NSString * _Nonnull)userId message:(NSData * _Nonnull)messageStr config:(ByteRTCMessageConfig)config; | |||
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 基础类名变更 | 所有模块 | @protocol ByteRTCRoomDelegate | @protocol RTCRoomDelegate | |
| 位置迁移,所属类型变更 | 多房间 | 以下回调从 RTCRoomDelegate(原 ByteRTCRoomDelegate) 类下移除,使用 ByteRTCEngineDelegate 类中的同名回调代替: | ||
| 参数变更 | 音频路由 | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onAudioRouteChanged:(ByteRTCAudioRoute)device; | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onAudioRouteChanged:(ByteRTCAudioRoute)device;`](70087#rtcengine-onaudioroutechanged)| | | |
| 回调重构 | 自定义音频处理 | @protocol ByteRTCAudioProcessor <NSObject>- (int)processAudioFrame:(ByteRTCAudioFrame * _Nonnull)audioFrame;@end | @protocol ByteRTCAudioProcessor <NSObject> - (int)onProcessRecordAudioFrame:(ByteRTCAudioFrame * _Nonnull)audioFrame; - (int)onProcessPlaybackAudioFrame:(ByteRTCAudioFrame * _Nonnull)audioFrame; - (int)onProcessRemoteUserAudioFrame:(ByteRTCAudioFrame * _Nonnull)audioFrame; @end | |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
枚举值增删 |
| 增加以下枚举值:
|
枚举值增删 | 增加以下枚举值:
| |
成员变量增删 | 删除以下成员变量:
| |
成员变量增删 | 增加以下成员变量:
| |
枚举值增删 | 增加以下枚举值:
| |
| 枚举值含义变更 | ByteRTCAudioScenarioType | 枚举值对应的语音模式决策逻辑发生变化,本地是否播放不再是决策因素,只取决于麦克风是否开启 |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | ByteRTCWarningCode | 新增枚举值:-2014 |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 名称和参数变更 | 音频管理 | (ByteRTCPositionAudioRender *_Nullable)getPositionAudioRender; | (ByteRTCSpatialAudio *_Nullable)getSpatialAudio; | 接口由 ByteRTCEngineKit 类移动至 ByteRTCRoom 类 |
| 名称变化 | 音频管理 | (void)enableAudioSpatialRender:(BOOL) enable; | (void)enableSpatialAudio:(BOOL)enable; | |
原接口废弃,使用新接口代替 | 音频管理 |
|
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
枚举值增删 | 删除枚举值: | |
| 类型增减 | ByteRTCTranscoderContentControlType | 新增 |
| 成员变量变化 | ByteRTCVideoCompositingRegion | 成员变量contentControl变更为枚举类型 |
| 类型名称变化 | ByteRTCAudioRoute | 类型名由ByteRTCAudioRouteDevice修改为 ByteRTCAudioRoute |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | ByteRTCErrorCode | 新增枚举值:-1083 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 返回值变更 | 实时消息 | (void)login:(NSString * _Nonnull)token uid:(NSString * _Nonnull)uid; | (int64_t)login:(NSString * _Nonnull)token uid:(NSString * _Nonnull)uid; | --- |
API 行为变更 | 订阅媒体流 | SDK 在每条远端流属性中维护订阅关系。如果该流被移除,订阅关系也将取消 | SDK 在房间属性中维护订阅关系列表。订阅关系将在用户退房后才会取消。 | --- |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 实时消息 | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onServerMessageSendResult:(int64_t)msgid error:(ByteRTCUserMessageSendResult)error; | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onServerMessageSendResult:(int64_t)msgid error:(ByteRTCUserMessageSendResult)error message:(NSData * _Nonnull)message; |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 成员函数属性 | ByteRTCLiveTranscoding | 其中成员函数 roomId 由可选传入改为必须传入 |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | ByteRtcTranscoderErrorCode | 新增枚举值:1095、1096、1097、1098、1099 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 替换 | 音频路由设置 | (int)setAudioPlaybackDevice:(ByteRTCAudioPlaybackDevice)audioPlaybackDevice; | (int)setAudioRoute:(ByteRTCAudioRouteDevice)audioRouteDevice; |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 替换 | 音频路由设置 | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onAudioPlaybackDeviceChanged:(ByteRTCAudioPlaybackDevice)device; | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onAudioRouteChanged:(ByteRTCAudioRouteDevice)device; |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 成员变量变化 | ByteRTCRemoteVideoConfig | frameRateRation 变为 framerate,由输入与原始帧率的比例变为输入期望订阅的最大帧率 |
| 成员变量增删 | ByteRTCSubscribeConfig | 新增成员变量 framerate |
| 枚举值增删 | ByteRTCAudioMixingError | 新增枚举值:ByteRTCAudioMixingErrorInValidPlaybackSpeed |
| 枚举值增删 | ByteRTCMediaDeviceState | 新增枚举值:ByteRTCMediaDeviceStateInterruptionBegan,表示媒体设备采集暂停,等待自动恢复 |
| 枚举值增删 | ByteRTCMediaDeviceState | 新增枚举值:ByteRTCMediaDeviceStateInterruptionEnded,表示媒体设备采集已自动恢复 |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | ByteRTCErrorCode | 新增错误码:ByteRTCErrorCodeTokenExpired,表示用户因 Token 过期被踢出房间 |
| 枚举值增删 | ByteRTCErrorCode | 新增枚举值:ByteRTCErrorCodeUpdateTokenWithInvalidToken,表示调用 updateToken: 使用的 Token 无效 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 合并 | 音频数据回调 | - (BOOL)setRecordingAudioFrameParameters:(NSInteger)samplesPerSec channels:(NSInteger)channels;- (BOOL)setPlaybackAudioFrameParameters:(NSInteger)samplesPerSec channels:(NSInteger)channels;- (BOOL)setMixedAudioFrameParameters:(NSInteger)samplesPerSec channels:(NSInteger)channels; | - (void)enableAudioFrameCallback:(ByteRTCAudioFrameCallbackMethod) method format:(ByteRTCAudioFormat* _Nullable)format; | 在format中设置回调的音频数据类型 |
| 参数增加 | 本地录制 | - (int)startFileRecording:(ByteRTCStreamIndex)streamIndex withRecordingConfig:(ByteRTCRecordingConfig* _Nonnull)recordingConfig; | - (int)startFileRecording:(ByteRTCStreamIndex)streamIndex withRecordingConfig:(ByteRTCRecordingConfig* _Nonnull)recordingConfig type:(ByteRTCRecordingType)recordingType; |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前回调 | 变动后回调 | 备注 |
|---|---|---|---|---|
| 参数变化 | 房间管理 | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onUserLeave:(NSString *_Nonnull)uid reason:(ByteRTCUserOfflineReason)reason;(void)rtcRoom:(ByteRTCRoom *_Nonnull)rtcRoom onUserLeave:(NSString *_Nonnull)uid reason:(ByteRTCUserOfflineReason)reason; | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onUserLeave:(NSString *_Nonnull)uid reason:(ByteRTCUserOfflineReason)reason;- (void)rtcRoom:(ByteRTCRoom *_Nonnull)rtcRoom onUserLeave:(NSString *_Nonnull)uid reason:(ByteRTCUserOfflineReason)reason; | reason 参数变化 |
| 删除 | 转推直播 | - (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onLiveTranscodingResult:(NSString *_Nonnull)url errorCode:(ByteRTCTranscodingError)errorCode; | / | |
| 删除 | 多房间 | - (void)rtcRoom:(ByteRTCRoom *_Nonnull)rtcRoom onLiveTranscodingResult:(NSString *_Nonnull)url errorCode:(ByteRTCTranscodingError)errorCode; | / | |
| 拆分或合并 | 房间管理 | - (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onStreamAdd:(id <ByteRTCStream> _Nonnull)stream;- (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine didStreamRemoved:(NSString *_Nonnull)uid stream:(id<ByteRTCStream> _Nonnull)stream reason:(ByteRTCStreamRemoveReason)reason;- (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onUserMuteAudio:(NSString * _Nonnull)uid muteState:(ByteRTCMuteState)muteState;- (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onUserMuteVideo:(NSString * _Nonnull)uid withMuteState:(ByteRTCMuteState)muteState; | - (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onUserPublishStream:(NSString *_Nonnull)userId type:(ByteRTCMediaStreamType)type;- (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onUserPublishScreen:(NSString *_Nonnull)userId type:(ByteRTCMediaStreamType)type;- (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onUserUnPublishStream:(NSString *_Nonnull)userId type:(ByteRTCMediaStreamType)type reason:(ByteRTCStreamRemoveReason)reason;- (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onUserUnPublishScreen:(NSString *_Nonnull)userId type:(ByteRTCMediaStreamType)type reason:(ByteRTCStreamRemoveReason)reason; | 单房间模式下,解耦新增或移除摄像头/麦克风采集的媒体流与新增屏幕共享媒体流的回调,同时去除旧版本回调在功能上的重合 |
| 拆分或合并 | 多房间 | - (void)rtcRoom:(ByteRTCRoom *_Nonnull)rtcRoom onStreamAdd:(id<ByteRTCStream> _Nonnull)stream;- (void)rtcRoom:(ByteRTCRoom *_Nonnull)rtcRoom didStreamRemoved:(NSString *_Nonnull)uid stream:(id<ByteRTCStream> _Nonnull)stream reason:(ByteRTCStreamRemoveReason)reason;- (void)rtcRoom:(ByteRTCRoom *_Nonnull)rtcRoom onUserMut- (void)rtcRoom:(ByteRTCRoom *_Nonnull)rtcRoom onUserMuteVideo:(NSString *_Nonnull)uid withMuteState:(ByteRTCMuteState)muteState; | - (void)rtcRoom:(ByteRTCRoom * _Nonnull)rtcRoom onUserPublishStream:(NSString *_Nonnull)userId type:(ByteRTCMediaStreamType)type;- (void)rtcRoom:(ByteRTCRoom * _Nonnull)rtcRoom onUserPublishScreen:(NSString *_Nonnull)userId type:(ByteRTCMediaStreamType)type;- (void)rtcRoom:(ByteRTCRoom * _Nonnull)rtcRoom onUserUnPublishStream:(NSString *_Nonnull)userId type:(ByteRTCMediaStreamType)type reason:(ByteRTCStreamRemoveReason)reason;- (void)rtcRoom:(ByteRTCRoom * _Nonnull)rtcRoom onUserUnPublishScreen:(NSString *_Nonnull)userId type:(ByteRTCMediaStreamType)type reason:(ByteRTCStreamRemoveReason)reason; | 单房间模式下,解耦新增或移除摄像头/麦克风采集的媒体流与新增屏幕共享媒体流的回调,同时去除旧版本回调在功能上的重合 |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举值增减 | ByteRTCMediaDeviceType | 新增了枚举值:ByteRTCMediaDeviceTypeScreenVideoCaptureDevice |
| 枚举值增减 | ByteRTCStreamMixingEvent | 新增了多个枚举值 |
| 类型增减 | ByteRTCScreenMediaType | 新增屏幕采集媒体类型 |
| 成员变量变化 | ByteRTCLocalStreamStats 和 ByteRTCRemoteStreamStats | txQuality 和 rxQuality 成员变量移动到了新增类型 ByteRTCNetworkQualityStats 中,通过 rtcEngine:onNetworkQuality:remoteQualities: 回调获取 |
| 成员变量变化 | ByteRTCAudioPropertiesInfo | 成员变量 volume 拆分为 linearVolume 和 nonlinearVolume |
| 成员变量增删 | ByteRTCRoomConfig | 新增 remoteVideoConfig |
| 成员变量增删 | ByteRTCMultiRoomConfig | 新增 remoteVideoConfig |
自此版本起,本地视频采集参数默认由系统自动设置,而不是和编码参数保持一致。你可以通过 VideoCaptureConfig 进行相关设置。如果你的代码逻辑中对采集到的视频帧进行了自定义处理,应对处理逻辑进行相应修改。
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 视频管理 | - (int)setVideoCaptureConfig:(ByteRTCVideoCaptureConfig * _Nullable)captureConfig; | - (int)setVideoCaptureConfig:(ByteRTCVideoCaptureConfig * _Nullable)captureConfig; | 增加摄像头采集参数中的模式设置 |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前回调 | 变动后回调 | 备注 |
|---|---|---|---|---|
| 名称变化 | 视频管理 | - (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onFirstRemoteVideoFrameRendered:(ByteRTCRemoteStreamKey * _Nonnull)streamKey withFrameInfo:(ByteRTCVideoFrameInfo * _Nonnull)frameInfo; | - (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onFirstRemoteVideoFrameDecoded:(ByteRTCRemoteStreamKey * _Nonnull)streamKey withFrameInfo:(ByteRTCVideoFrameInfo * _Nonnull)frameInfo; | |
| 名称变化 | 多房间 | - (void)rtcRoom:(ByteRTCRoom *_Nonnull)rtcRoom onFirstRemoteVideoFrameRendered:(ByteRTCRemoteStreamKey *_Nonnull)streamKey withFrameInfo:(ByteRTCVideoFrameInfo *_Nonnull)frameInfo; | - (void)rtcRoom:(ByteRTCRoom *_Nonnull)rtcRoom onFirstRemoteVideoFrameDecoded:(ByteRTCRemoteStreamKey *_Nonnull)streamKey withFrameInfo:(ByteRTCVideoFrameInfo *_Nonnull)frameInfo; |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举值增减 | ByteRTCAudioMixingError | 新增了枚举值:ByteRTCNetworkDetectionStopReasonInnerErr |
| 枚举值增减 | ByteRTCNetworkDetectionStopReason | 新增了枚举值:ByteRTCAudioMixingErrorInValidPitch |
| 成员变量变化 | ByteRTCAudioMixingConfig | 新增了成员变量:position 和 callbackOnProgressInterval |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增减 | ByteRTCWarningCode | 新增了枚举值:-5011 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 音频管理 | (void)enableAudioMixingFrame:(ByteRTCAudioMixingType)type;(void)disableAudioMixingFrame;(int)pushAudioMixingFrame:(ByteRTCAudioFrame* _Nullable)audioFrame; | (void)enableAudioMixingFrame:(int)id type:(ByteRTCAudioMixingType)type;(void)disableAudioMixingFrame:(int)id;(int)pushAudioMixingFrame:(int)id audioFrame:(ByteRTCAudioFrame* _Nullable)audioFrame; |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增减 | ByteRTCWarningCode | 废弃了枚举值 -5002 ~ -5008。使用 onMediaDeviceStateChanged 代替。 |
| 枚举值增减 | ByteRTCLocalVideoStreamError | 新增了枚举值 7。 |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 成员变量变化 | ByteRTCLocalVideoStats | 新增了成员变量:jitter |
| 成员变量变化 | ByteRTCRemoteVideoStats | 新增了成员变量:jitter |
| 成员变量变化 | ByteRTCLocalAudioStats | 新增了成员变量:jitter |
| 成员变量变化 | ByteRTCRemoteAudioStats | 新增了成员变量:jitter |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 房间管理 | - (int)joinRoomByKey:(NSString *_Nullable)token roomId:(NSString *_Nonnull)roomId userInfo:(ByteRTCUserInfo *_Nonnull)userInfo rtcRoomConfig:(ByteRTCRoomConfig *_Nonnull)rtcRoomConfig; | - (int)joinRoomByKey:(NSString *_Nullable)token roomId:(NSString *_Nonnull)roomId userInfo:(ByteRTCUserInfo *_Nonnull)userInfo rtcRoomConfig:(ByteRTCRoomConfig *_Nonnull)rtcRoomConfig; | 补充方法调用返回信息 |
| 参数变化 | 房间管理 | - (int)leaveRoom:(void (^_Nullable)(ByteRTCRoomStats *_Nonnull stat))leaveRoomBlock; | - (int)leaveRoom; | |
| 参数变化 | 多房间 | - (int)joinRoomByToken:(NSString *_Nullable)token userInfo:(ByteRTCUserInfo *_Nonnull)userInfo roomConfig:(ByteRTCMultiRoomConfig *_Nonnull)roomConfig; | - (int)joinRoomByToken:(NSString *_Nullable)token userInfo:(ByteRTCUserInfo *_Nonnull)userInfo roomConfig:(ByteRTCMultiRoomConfig *_Nonnull)roomConfig; | 补充方法调用返回信息 |
| 参数变化 | 视频管理 | - (void)setVideoSourceType:(ByteRTCVideoSourceType)type; | - (void)setVideoSourceType:(ByteRTCVideoSourceType)type WithStreamIndex:(ByteRTCStreamIndex)streamIndex; | |
| 名称和参数变化 | 音频管理 | - (void)setAudioVolumeIndicationInterval:(NSInteger)interval; | - (void)enableAudioPropertiesReport:(ByteRTCAudioPropertiesConfig* _Nonnull)config; | |
| 名称和参数变化 | 视频管理 | - (int)setLocalVideoMirrorMode:(ByteRTCMirrorMode) mode; | - (int)setLocalVideoMirrorType:(ByteRTCMirrorType) mirrorType; |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前回调 | 变动后回调 | 备注 |
|---|---|---|---|---|
| 删除 | 视频管理 | - (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine didMirrorStateChanged:(BOOL)mirrored; | / | |
| 拆分或合并 | 音频管理 | - (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onAudioVolumeIndication:(NSArray<ByteRTCAudioVolumeInfo *> * _Nonnull)speakers totalRemoteVolume:(NSInteger)totalRemoteVolume; | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onLocalAudioPropertiesReport:(NSArray<ByteRTCLocalAudioPropertiesInfo *> * _Nonnull)audioPropertiesInfos; (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onRemoteAudioPropertiesReport:(NSArray<ByteRTCRemoteAudioPropertiesInfo *> * _Nonnull)audioPropertiesInfos totalRemoteVolume:(NSInteger)totalRemoteVolume; | 旧版回调拆分为 onLocalAudioPropertiesReport: 和 onRemoteAudioPropertiesReport: |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举值增减 | ByteRTCAudioChannel | 新增了枚举值:ByteRTCAudioChannelAuto |
| 枚举值增减 | ByteRTCAudioSampleRate | 新增了枚举值:ByteRTCAudioSampleRateAuto |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 视频管理 | - (int)setVideoEncoderConfig:(NSArray <ByteRTCVideoSolution *> *_Nullable)videoSolutions; | - (int)setVideoEncoderConfig:(ByteRTCStreamIndex)streamIndex config:(NSArray <ByteRTCVideoSolution *> * _Nullable)videoSolutions; | |
| 名称和参数变化 | 音频管理 | - (void)setRecordingVolume:(NSInteger)volume | - (void)setCaptureVolume:(ByteRTCStreamIndex)index volume:(int)volume; | |
| 名称和参数变化 | 音频数据回调 | - (BOOL)setMediaMetadataObserver:(_Nullable id<ByteRTCMediaMetadataObserver>) metadataObserver; | - (int)sendSEIMessage:(ByteRTCStreamIndex)streamIndex andMessage:(NSData* _Nonnull)message andRepeatCount:(int)repeatCount; | |
| 名称和参数变化 | 引擎管理 | + (int)feedbackGrade:(NSInteger)grade type:(NSInteger)type desc:(NSString* _Nullable)desc; | - (int)feedbackTypes:(NSArray* _Nullable)types desc:(NSString* _Nullable)desc; |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前回调 | 变动后回调 | 备注 |
|---|---|---|---|---|
| 名称和参数变化 | 视频数据回调 | virtual void OnMetadataReceived(const char* roomid, const char* uid, const VideoMetadataBuffer& metadata) = 0; | - (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onSEIMessageReceived:(ByteRTCRemoteStreamKey* _Nonnull)remoteStreamKey andMessage:(NSData* _Nonnull)message; |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举值增减 | ByteRTCProblemFeedbackOption | 删除了枚举值:ByteRTCProblemFeedbackOptionConnectionFailedByteRTCProblemFeedbackOptionConnectionFailedByteRTCProblemFeedbackOptionConnectionFailedByteRTCFeedBackProblemTypeEarBackDelay |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增减 | ByteRTCWarningCode | 新增了枚举值:ByteRTCWarningSetScreenAudioSourceTypeFailedByteRTCWarningSetScreenAudioStreamIndexFailed |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 房间管理 | - (int)joinRoomByKey:(NSString *_Nullable)token roomId:(NSString *_Nonnull)roomId roomProfile:(ByteRTCRoomProfile)roomProfile userInfo:(ByteRTCUserInfo *_Nonnull)userInfo; | - (int)joinRoomByKey:(NSString *_Nullable)token roomId:(NSString *_Nonnull)roomId userInfo:(ByteRTCUserInfo *_Nonnull)userInfo rtcRoomConfig:(ByteRTCRoomConfig *_Nonnull)rtcRoomConfig; | |
| 名称和参数变化 | 房间管理 | - (BOOL)setUserRole:(ByteRTCUserRoleType)role; | - (BOOL)setUserVisibility:(BOOL)enable; | |
| 拆分或合并 | 房间管理 | - (void)subscribeStream:(NSString *_Nonnull)userId subscribeConfig:(ByteRTCSubscribeConfig *_Nonnull)info- (void)unSubscribeStream:(NSString *_Nonnull)userId isScreen:(BOOL)isScreen- (void)muteRemoteAudio:(NSString * _Nonnull)uid muteState:(ByteRTCMuteState)muteState- (int)muteRemoteVideo:(NSString * _Nonnull)uid withMuteState:(ByteRTCMuteState)muteState | - (void)subscribeUserStream:(NSString *_Nonnull)userId streamType:(ByteRTCStreamIndex)streamType mediaType:(ByteRTCSubscribeMediaType)mediaType videoConfig:(ByteRTCSubscribeVideoConfig *_Nonnull)videoConfig; | |
| 拆分或合并 | 音频管理/视频管理 | - (void)muteAllRemoteAudio:(ByteRTCMuteState)muteState- (int)muteAllRemoteVideo:(ByteRTCMuteState)muteState | - (void)pauseAllSubscribedStream:(ByteRTCPauseResumControlMediaType) mediaType; | 通过 pauseAllSubscribedStream 和 resumeAllSubscribedStream 来暂停或接收所有远端媒体流 |
| 删除 | 房间管理 | - (BOOL)enableAutoSubscribe:(ByteRTCSubscribeMode)audioMode videoMode:(ByteRTCSubscribeMode)videoMode | / | 使用 joinRoomBykey 中的 roomConfig 进行设置 |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举值增减 | ByteRTCAudioScenarioType | 新增了枚举值:ByteRTCAudioScenarioGameStreaming |
| 枚举值增减 | ByteRTCUserMessageSendResult | 新增了枚举值:ByteRTCUserMessageSendResultNotLoginByteRTCUserMessageSendResultServerParamsNotSet |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增减 | ByteRTCWarningCode | 新增了枚举值:ByteRTCWarningCodePublishStreamForbidenByteRTCWarningCodeCodeUserNotifyStop |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 混音 | - (int)getAudioMixingDuration; | -(int)getAudioMixingDuration:(int)id; | |
| 参数变化 | 混音 | - (int)getAudioMixingCurrentPosition; | -(int)getAudioMixingCurrentPosition:(int)id; | |
| 参数变化 | 混音 | - (int)setAudioMixingPosition:(NSInteger)pos; | -(void)setAudioMixingPosition:(int)id position:(int)position; | |
| 名称和参数变化 | 混音 | - (int)preloadEffect:(NSInteger)soundId filePath:(NSString * _Nullable)filePath | -(void)preloadAudioMixing:(int)id filePath:(NSString * _Nullable)filePath; | |
| 名称和参数变化 | 混音 | - (BOOL)pushAudioMixingStreamData:(void*_Nonnull)audioFrame frameNum:(int)frameNum; | -(int)pushAudioMixingFrame:(ByteRTCAudioFrame* _Nullable)audioFrame; | |
| 拆分或合并 | 自定义视频采集渲染 | - (int)setLocalVideoRenderer:(id<ByteRTCVideoSinkProtocol> _Nullable)videoRenderer;- (int)setLocalVideoRenderer:(id<ByteRTCVideoSinkProtocol> _Nullable)videoRenderer forRoomId:(NSString * _Nonnull)roomId forUserId:(NSString * _Nonnull)userId; | -(void) setLocalVideoSink:(ByteRTCStreamIndex)index withSink:(id<ByteRTCVideoSinkProtocol>) sink withPixelFormat:(ByteVideoPixelFormat)requiredFormat | 多个旧版接口合并为 setLocalVideoSink |
| 拆分或合并 | 自定义视频采集渲染 | - (int)setRemoteVideoRenderer:(id<ByteRTCVideoSinkProtocol> _Nullable)videoRenderer forRoomId:(NSString * _Nonnull)roomId forUserId:(NSString * _Nonnull)userId;- (int)setRemoteVideoRenderer:(id<ByteRTCVideoSinkProtocol> _Nullable)videoRenderer forUserId:(NSString * _Nonnull)userId;- (int)setupRemoteScreenRenderer:(id<ByteRTCVideoSinkProtocol> _Nullable)screenRenderer forRoomId:(NSString * _Nonnull)roomId forUserId:(NSString * _Nonnull)userId;-(int)setupRemoteScreenRenderer:(id<ByteRTCVideoSinkProtocol> _Nullable)screenRenderer forUserId:(NSString * _Nonnull)userId; | -(void) setRemoteVideoSink:(ByteRTC RemoteStreamKey)streamKey withSink:(id<ByteRTCVideoSinkProtocol>) canvas withPixelFormat:(ByteVideoPixelFormat)requiredFormat | 多个旧版接口合并为 setRemoteVideoSink |
| 拆分或合并 | 混音 | - (int)startAudioMixing:(NSString * _Nonnull)filePath loopback:(BOOL)loopback replace:(BOOL)replace cycle:(NSInteger)cycle;- (int)playEffect:(NSInteger)soundId filePath:(NSString * _Nullable)filePath loopback:(BOOL)loopback cycle:(NSInteger)cycle withVolume:(NSInteger)volume; | -(void)startAudioMixing:(int)id filePath:(NSString * _Nullable)filePath config:(ByteRTCAudioMixingConfig * _Nullable)config; | 多个接口合并为 startAudioMixing |
| 拆分或合并 | 混音 | - (int)stopAudioMixing;- (int)stopEffect:(NSInteger)soundId;- (int)stopAllEffects; | -(void)stopAudioMixing:(int)id; | 多个接口合并为 stopAudioMixing |
| 拆分或合并 | 混音 | - (int)pauseAudioMixing;- (int)pauseEffect:(NSInteger)soundId;- (int)pauseAllEffects; | -(void)pauseAudioMixing:(int)id; | 多个接口合并为pauseAudioMixing |
| 拆分或合并 | 混音 | - (int)resumeAudioMixing;- (int)resumeEffect:(NSInteger)soundId;- (int)resumeAllEffects; | -(void)resumeAudioMixing:(int)id; | 多个接口合并为 resumeAudioMixing |
| 拆分或合并 | 混音 | - (int)unloadEffect:(NSInteger)soundId;- (int)unloadAllEffects; | -(void)unloadAudioMixing:(int)id; | 多个接口合并为 unloadAudioMixing |
| 拆分或合并 | 混音 | - (int)adjustAudioMixingVolume:(NSInteger)volume;- (int)setVolumeOfEffect:(NSInteger)soundId withVolume:(NSInteger)volume- (int)adjustAudioMixingPlayoutVolume:(NSInteger)volume;- (int)adjustAudioMixingPublishVolume:(NSInteger)volume;- (int)setEffectsVolume:(NSInteger)volume; | -(void)setAudioMixingVolume:(int)id volume:(int)volume type:(ByteRTCAudioMixingType)type; | 多个接口合并为setAudioMixingVolume |
| 拆分或合并 | 混音 | - (BOOL)setAudioPlayoutMixStream:(BOOL) enable sampleRate:(int) sampleRate channelNum:(int) channelNum; | -(void)enableAudioMixingFrame:(ByteRTCAudioMixingType)type;-(void)disableAudioMixingFrame; | 旧版接口拆分成 enableAudioMixingFrame 和 disableAudioMixingFrame |
| 删除 | 混音 | - (int)getEffectVolume:(NSInteger)soundId; | / | |
| 删除 | 混音 | - (int)getAudioMixingStreamCachedFrameNum; | / |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举值增减 | ByteRTCStreamMixingEvent | 新增了枚举值:StreamMixingUpdateTimeOut |
| 枚举值增减 | ByteRTCStreamMixingType | 删除了枚举值:StreamMixingTypeByAuto |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 视频特效 | - (void) setVideoEffectNodes:(NSArray <NSString *> *_Nonnull)effectNodePaths; | - (int) setVideoEffectNodes:(NSArray <NSString *> *_Nonnull)effectNodePaths; | |
| 参数变化 | 视频特效 | - (void) updateVideoEffectNode:(NSString * _Nonnull)nodePath nodeKey:(NSString * _Nonnull)nodeKey nodeValue:(float) nodeValue; | - (int) updateVideoEffectNode:(NSString * _Nonnull)nodePath nodeKey:(NSString * _Nonnull)nodeKey nodeValue:(float) nodeValue; | |
| 参数变化 | 视频特效 | - (void) setVideoEffectColorFilter:(NSString * _Nonnull)resPath; | - (int) setVideoEffectColorFilter:(NSString * _Nonnull)resPath; | |
| 参数变化 | 视频特效 | - (void) setVideoEffectColorFilterIntensity:(float) intensity; | - (int) setVideoEffectColorFilterIntensity:(float) intensity; | |
| 参数变化 | 视频管理 | - (int)muteLocalVideo:(ByteRTCMuteState)mute_state; | - (void)muteLocalVideo:(ByteRTCMuteState)mute_state; | |
| 名称和参数变化 | 视频管理 | - (void)setVideoInputType:(ByteRTCMediaInputType)type; | - (void)setVideoSourceType:(ByteRTCVideoSourceType)type; | |
| 删除 | 视频特效 | - (int) checkVideoEffectSupport; | / | |
| 删除 | 视频特效 | - (void) addVideoEffectNodes:(NSArray <NSString *> *_Nonnull)effectNodePaths; | / | |
| 删除 | 视频特效 | - (void) removeVideoEffectNodes:(NSArray <NSString *> *_Nonnull)effectNodePaths; | / | |
| 删除 | 音频管理 | - (void)setAudioPerformanceProfile:(ByteRTCAudioPerformanceProfile) profile; | / |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前回调 | 变动后回调 | 备注 |
|---|---|---|---|---|
| 名称变化 | 引擎管理 | - (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine didMediaDeviceStateChanged``:(NSString*_Nonnull)device_id device_type:(ByteRTCMediaDeviceType)device_type device_state:(ByteRTCMediaDeviceState)device_state device_error:(ByteRTCMediaDeviceError)device_error; | - (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onMediaDeviceStateChanged``:(NSString*_Nonnull)device_id device_type:(ByteRTCMediaDeviceType)device_type device_state:(ByteRTCMediaDeviceState)device_state device_error:(ByteRTCMediaDeviceError)device_error; |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举值增减 | ByteRTCWarningCode | 新增了枚举值: ByteRTCWarningCodeMediaDeviceOperationDenniedByteRTCWarningCodeInvalidCanvasHandle |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 房间管理 | (int)leaveRoom:(void (^_Nullable)(ByteRTCRoomStats *_Nonnull stat))leaveChannelBlock; | (int)leaveRoom:(void (^_Nullable)(ByteRTCRoomStats *_Nonnull stat))leaveRoomBlock; | |
| 参数变化 | 视频管理 | - (int)switchCamera; | - (int)switchCamera:(ByteRTCCameraID) cameraId; | |
| 参数变化 | CDN 推流 | - (int)startLiveTranscoding:(ByteRTCLiveTranscoding *_Nonnull)transcoding; | - (int)startLiveTranscoding:(ByteRTCLiveTranscoding *_Nonnull)transcoding observer:(id<LiveTranscodingDelegate> _Nonnull)observer; | |
| 名称和参数变化 | CDN 推流 | - (int)updateLiveTranscodingLayout:(ByteRTCVideoCompositingLayout *_Nonnull)layout; | - (int)updateLiveTranscoding:(ByteRTCLiveTranscoding *_Nonnull)transcoding; | |
| 删除 | 音频管理 | - (BOOL)isSpeakerphoneEnabled; | / |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前回调 | 变动后回调 | 备注 |
|---|---|---|---|---|
| 参数变化 | 警告码 | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onWarning:(ByteRTCWarningCode)Code; | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onWarning:(ByteRTCWarningCode)Code; | ByteRTCWarningCode 增加了枚举值:ByteRTCWarningCodeRecordingSilence |
| 参数变化 | 引擎管理 | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine didMediaDeviceStateChanged:(ByteRTCMediaDeviceType)device_type device_state:(ByteRTCMediaDeviceState)device_state; | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine didMediaDeviceStateChanged:(NSString*_Nonnull)device_id device_type:(ByteRTCMediaDeviceType)device_type device_state:(ByteRTCMediaDeviceState)device_state device_error:(ByteRTCMediaDeviceError)device_error; | ByteRTCMediaDeviceType 枚举值名称变更 |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举值增减 | ByteRTCMediaDeviceState | 删除了枚举值:ByteRTCMediaDeviceStateStartFailedByteRTCMediaDeviceStateStopFailedByteRTCMediaDeviceStateRuntimeErrorByteRTCMediaDeviceStateAddedByteRTCMediaDeviceStateRemoved |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 加密 | (void)setEncryptType:(ByteEncryptType)encrypt_type key:(NSString * _Nonnull)key; | (void)setEncryptType:(ByteRTCEncryptType)encrypt_type key:(NSString * _Nonnull)key; | |
| 参数变化 | 房间管理 | (BOOL)enableAutoSubscribe:(ByteSubscribeMode)audioMode videoMode:(ByteSubscribeMode)videoMode; | - (BOOL)enableAutoSubscribe:(ByteRTCSubscribeMode)audioMode videoMode:(ByteRTCSubscribeMode)videoMode; | |
| 参数变化 | 视频管理 | (BOOL)pushExternalByteVideoFrame:(ByteVideoFrame * _Nonnull)frame; | (BOOL)pushExternalByteVideoFrame:(ByteRTCVideoFrame * _Nonnull)frame; | |
| 参数变化 | 视频管理 | (int) replaceBackground:(BackgroundMode)mode withDivideModel:(DivideModel)divideModel; | (int) replaceBackground:(ByteRTCBackgroundMode)mode withDivideModel:(ByteRTCDivideModel)divideModel; | |
| 参数变化 | 视频管理 | (int)setLocalVideoMirrorMode:(ByteVideoMirrorMode) mode; | (int)setLocalVideoMirrorMode:(ByteRTCMirrorMode) mode; | |
| 参数变化 | 性能回退 | (int)setPublishFallbackOption:(BytePublishFallbackOption)option; | (int)setPublishFallbackOption:(ByteRTCPublishFallbackOption)option; | |
| 参数变化 | 性能回退 | (int)setSubscribeFallbackOption:(ByteSubscribeFallbackOption)option; | (int)setSubscribeFallbackOption:(ByteRTCSubscribeFallbackOption)option; | |
| 参数变化 | 性能回退 | (int)setRemoteUserPriority:(ByteUserPriority)priority uid:(NSString *_Nonnull)uid; | (int)setRemoteUserPriority:(ByteRTCRemoteUserPriority)priority uid:(NSString *_Nonnull)uid; | |
| 参数变化 | 音频管理 | (BOOL)pullExternalAudioFrame:(void* _Nonnull)audioFrame frameNum:(int)frameNum; | (int)pullExternalAudioFrame:(ByteRTCAudioFrame * _Nonnull) audioFrame; | |
| 参数变化 | 音频管理 | (BOOL)pushExternalAudioFrame:(void* _Nonnull)audioFrame frameNum:(int)frameNum; | (int)pushExternalAudioFrame:(ByteRTCAudioFrame * _Nonnull) audioFrame; | |
| 参数变化 | 音频管理 | (void)setAudioScenario:(ByteRtcAudioScenarioType)audioScenario; | (void)setAudioScenario:(ByteRTCAudioScenarioType)audioScenario; | |
| 名称变化 | 房间管理 | - (int)renewChannelKey:(NSString * _Nonnull)token | - (int)updateToken:(NSString *_Nonnull)token | |
| 名称变化 | 加密 | (NSData * _Nonnull)ByteEngineEncryptRawData:(NSData * _Nonnull)rawData; | (NSData * _Nonnull) ByteRTCEncryptRawData:(NSData * _Nonnull)rawData; | |
| 名称变化 | 加密 | (NSData * _Nonnull)ByteEngineDecryptRawData:(NSData * _Nonnull)rawData; | (NSData * _Nonnull) ByteRTCDecryptRawData:(NSData * _Nonnull)rawData; | |
| 名称变化 | 音频管理 | (int)adjustRecordingSignalVolume:(NSInteger)volume; | (void)setRecordingVolume:(NSInteger)volume; | |
| 名称变化 | 音频管理 | (int)adjustPlaybackSignalVolume:(NSInteger)volume; | (void)setPlaybackVolume:(NSInteger)volume; | |
| 名称变化 | CDN 推流 | (int)disableLiveTranscoding | (int)stopLiveTranscoding | |
| 名称和参数变化 | 房间管理 | - (BOOL)setClientRole:(ByteRtcClientRole)role; | - (BOOL)setUserRole:(ByteRTCUserRoleType)role; | |
| 名称和参数变化 | 房间管理 | - (int)leaveChannel:(void(^ _Nullable)(ByteRtcStats * _Nonnull stat))leaveChannelBlock | - (int)leaveRoom:(void (^_Nullable)(ByteRTCRoomStats *_Nonnull stat))leaveChannelBlock; | |
| 名称和参数变化 | 房间管理 | - (int)joinChannelByKey:(NSString * _Nullable)token channelName:(NSString * _Nonnull)roomId info:(NSString * _Nullable)info uid:(NSString * _Nonnull)userId | - (int)joinRoomByKey:(NSString *_Nullable)token roomId:(NSString *_Nonnull)roomId roomProfile:(ByteRTCRoomProfile)roomProfile userInfo:(ByteRTCUserInfo *_Nonnull)userInfo; | |
| 名称和参数变化 | 视频管理 | (void)setExternalVideoSource:(BOOL)enable useTexture:(BOOL)useTexture pushMode:(BOOL)pushMode; | (void)setVideoInputType:(ByteRTCMediaInputType)type; | |
| 名称和参数变化 | 视频管理 | (int)muteAllRemoteVideoStreams:(BOOL)mute; | (int)muteAllRemoteVideo:(ByteRTCMuteState)muteState; | |
| 名称和参数变化 | 视频管理 | (int)muteRemoteVideoStream:(NSString * _Nonnull)uid mute:(BOOL)mute; | (int)muteRemoteVideo:(NSString * _Nonnull)uid withMuteState:(ByteRTCMuteState)muteState; | |
| 名称和参数变化 | 视频管理 | (int)setupLocalVideo:(ByteRtcVideoCanvas * _Nullable)local; | (int)setLocalVideoCanvas:(ByteRTCStreamIndex)streamIndex withCanvas:(ByteRTCVideoCanvas * _Nullable)canvas; | |
| 名称和参数变化 | 视频管理 | (int)muteLocalVideoStream:(BOOL)mute; | (int)muteLocalVideo:(ByteRTCMuteState)mute_state; | |
| 名称和参数变化 | 视频管理 | (VideoStreamState)setVideoProfiles:(NSArray <VideoStreamDescription *> * _Nullable)videoStreamDescriptions | (int)setVideoEncoderConfig:(NSArray <ByteRTCVideoSolution *> * _Nullable)videoSolutions | |
| 名称和参数变化 | 音频管理 | (int)setEnableSpeakerphone:(BOOL)enableSpeaker | (int)setAudioPlaybackDevice:(ByteRTCAudioPlaybackDevice)audioPlaybackDevice | |
| 名称和参数变化 | 音频管理 | (void)setAudioPerfProfile:(AudioPerfProfile) profile | (void)setAudioPerformanceProfile:(ByteRTCAudioPerformanceProfile) profile | |
| 名称和参数变化 | 音频管理 | (int)muteLocalAudioStream:(BOOL)mute | (void)muteLocalAudio:(ByteRTCMuteState)muteState | |
| 名称和参数变化 | 音频管理 | (int)muteRemoteAudioStream:(NSString * _Nonnull)uid mute:(BOOL)mute | (void)muteRemoteAudio:(NSString * _Nonnull)uid muteState:(ByteRTCMuteState)muteState | |
| 名称和参数变化 | 音频管理 | (int)enableAudioVolumeIndication:(NSInteger)interval smooth:(NSInteger)smooth | (void)setAudioVolumeIndicationInterval:(NSInteger)interval | |
| 名称和参数变化 | 音频管理 | (int)adjustRemoteAudioVolume:(int)volume ofUid:(NSString* _Nonnull)uid | (void)setRemoteAudioPlaybackVolume:(NSString* _Nonnull)uid volume:(int)volume | |
| 名称和参数变化 | CDN 推流 | (int)enableLiveTranscoding:(ByteRtcLiveTranscoding * _Nonnull)transcoding | (int)startLiveTranscoding:(ByteRTCLiveTranscoding *_Nonnull)transcoding | |
| 名称和参数变化 | CDN 推流 | (int)setVideoCompositingLayout:(ByteRtcVideoCompositingLayout * _Nonnull)layout | (int)updateLiveTranscodingLayout:(ByteRTCVideoCompositingLayout *_Nonnull)layout | |
| 拆分或合并 | 视频管理 | (int)enableLocalVideo:(BOOL)enabled; | (void)startVideoCapture;(void)stopVideoCapture; | 旧版接口拆分成 startVideoCapture 和 stopVideoCapture |
| 拆分或合并 | 视频管理 | (int)setupRemoteVideo:(ByteRtcVideoCanvas * _Nonnull)remote;(int)setupRemoteScreen:(ByteRtcVideoCanvas * _Nonnull)screen; | (int)setRemoteVideoCanvas:(NSString * _Nonnull)uid withIndex:(ByteRTCStreamIndex)streamIndex withCanvas:(ByteRTCVideoCanvas * _Nullable)canvas; | 旧版接口合并为 setRemoteVideoCanvas |
| 拆分或合并 | 音频管理 | (int)muteAllRemoteAudioStreams:(BOOL)mute(void)setDefaultMuteAllRemoteAudioStreams:(BOOL)mute | (void)muteAllRemoteAudio:(ByteRTCMuteState)muteState | 多个旧版接口合并为 muteAllRemoteAudio: |
| 拆分或合并 | 音频管理 | (BOOL)setExternalAudioDevice:(BOOL) enable sampleRate:(int) sampleRate recordChannelNum:(int) recordChannelNum playoutChannelNum:(int) playoutChannelNum | (void)enableExternalAudioDevice:(ByteRTCAudioFormat * _Nonnull) recordingFormat playbackFormat:(ByteRTCAudioFormat * _Nonnull) playbackFormat(void)disableExternalAudioDevice | 旧版接口拆分为 enableExternalAudioDevice:playbackFormat: 和 disableExternalAudioDevice |
| 删除 | 房间管理 | (int)setChannelProfile:(ByteChannelProfile)profile; | / | |
| 删除 | 视频管理 | (VideoStreamState)setVideoProfiles:(NSArray <VideoStreamDescription *> * _Nullable)videoStreamDescriptions orientationMode:(ByteVideoOutputOrientationMode)mode; | / | |
| 删除 | 视频管理 | (void)setDefaultMuteAllRemoteVideoStreams:(BOOL)mute; | / |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前回调 | 变动后回调 | 备注 |
|---|---|---|---|---|
| 参数变化 | 引擎管理 | - (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine didMediaDeviceStateChanged:(ByteMediaDeviceType)device_type device_state:(ByteMediaDeviceState)device_state; | - (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine didMediaDeviceStateChanged:(ByteRTCMediaDeviceType)device_type device_state:(ByteRTCMediaDeviceState)device_state; | |
| 参数变化 | 房间管理 | - (void)rtcEngine:(ByteRtcEngineKit *_Nonnull)engine didStreamRemoved:(NSString *_Nonnull)uid stream:(id<ByteStream> _Nonnull)stream reason:(RtcStreamRemoveReason)reason; | - (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine didStreamRemoved:(NSString *_Nonnull)uid stream:(id<ByteRTCStream> _Nonnull)stream reason:(ByteRTCStreamRemoveReason)reason; | |
| 参数变化 | 房间管理 | - (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine onStreamAdd:(id <ByteStream> _Nonnull)stream; | - (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onStreamAdd:(id <ByteRTCStream> _Nonnull)stream; | ByteRTCStream 类型名称变化 |
| 参数变化 | 房间管理 | - (void)rtcEngine:(ByteRtcEngineKit *_Nonnull)engine onScreenVideoFrameSendStateChanged:(ByteRtcUser *_Nonnull)user state:(FirstFrameSendState)state; | - (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onScreenVideoFrameSendStateChanged:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFrameSendState)state; | |
| 参数变化 | 房间管理 | - (void)rtcEngine:(ByteRtcEngineKit *_Nonnull)engine onAudioFramePlayStateChanged:(ByteRtcUser *_Nonnull)user state:(FirstFramePlayState)state; | - (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onAudioFramePlayStateChanged:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFramePlayState)state; | ByteRTCEngineKit、ByteRTCUser 和 ByteRTCFirstFramePlayState 类型名称变化 |
| 参数变化 | 房间管理 | - (void)rtcEngine:(ByteRtcEngineKit *_Nonnull)engine onVideoFramePlayStateChanged:(ByteRtcUser *_Nonnull)user state:(FirstFramePlayState)state; | - (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onVideoFramePlayStateChanged:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFramePlayState)state; | ByteRTCEngineKit、ByteRTCUser 和 ByteRTCFirstFramePlayState 类型名称变化 |
| 参数变化 | 房间管理 | - (void)rtcEngine:(ByteRtcEngineKit *_Nonnull)engine onScreenVideoFramePlayStateChanged:(ByteRtcUser *_Nonnull)user state:(FirstFramePlayState)state; | - (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onScreenVideoFramePlayStateChanged:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFramePlayState)state; | ByteRTCEngineKit、ByteRTCUser 和 ByteRTCFirstFramePlayState 类型名称变化 |
| 参数变化 | 数据统计 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine reportSysStats:(const ByteRtcSysStats * _Nonnull)stats; | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine reportSysStats:(const ByteRTCSysStats * _Nonnull)stats; | |
| 参数变化 | 网络连接 | (void) rtcEngine:(ByteRtcEngineKit * _Nonnull)engine connectionChangedToState:(ByteRtcConnectionState) state | (void) rtcEngine:(ByteRTCEngineKit * _Nonnull)engine connectionChangedToState:(ByteRTCConnectionState) state | |
| 参数变化 | 网络连接 | (void) rtcEngine:(ByteRtcEngineKit * _Nonnull)engine networkTypeChangedToType:(ByteRtcNetworkType) type | (void) rtcEngine:(ByteRTCEngineKit * _Nonnull)engine networkTypeChangedToType:(ByteRTCNetworkType) type | |
| 参数变化 | 音频管理 | (void)onRecordAudioFrame:(ByteAudioFrame * _Nonnull)audioFrame | (void)onRecordAudioFrame:(ByteRTCAudioFrame * _Nonnull)audioFrame | |
| 参数变化 | 音频管理 | (void)onPlaybackAudioFrame:(ByteAudioFrame * _Nonnull)audioFrame | (void)onPlaybackAudioFrame:(ByteRTCAudioFrame * _Nonnull)audioFrame | |
| 参数变化 | 音频管理 | (void)onMixedAudioFrame:(ByteAudioFrame * _Nonnull)audioFrame | (void)onMixedAudioFrame:(ByteRTCAudioFrame * _Nonnull)audioFrame | |
| 参数变化 | 音频管理 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine didLocalAudioEnabled:(BOOL)enabled byUid:(NSString * _Nonnull)uid | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine didLocalAudioEnabled:(BOOL)enabled byUid:(NSString * _Nonnull)uid | |
| 参数变化 | 音频管理 | (void)rtcEngine:(ByteRtcEngineKit *_Nonnull)engine onAudioFrameSendStateChanged:(ByteRtcUser *_Nonnull)user state:(FirstFrameSendState)state | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onAudioFrameSendStateChanged:(ByteRTCUser *_Nonnull)user state:(ByteRTCFirstFrameSendState)state | |
| 参数变化 | 流消息 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine onRoomMessageReceived:(NSString * _Nonnull)uid message:(NSString * _Nonnull)message; | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onRoomMessageReceived:(NSString * _Nonnull)uid message:(NSString * _Nonnull)message; | |
| 参数变化 | 流消息 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine onRoomBinaryMessageReceived:(NSString * _Nonnull)uid message:(NSData * _Nonnull)message; | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onRoomBinaryMessageReceived:(NSString * _Nonnull)uid message:(NSData * _Nonnull)message; | |
| 参数变化 | 流消息 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine onUserMessageSendResult:(int64_t)msgid error:(UserMessageCode)error; | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onUserMessageSendResult:(int64_t)msgid error:(ByteRTCUserMessageSendResult)error; | ByteRTCUserMessageSendResult 枚举值名称变更 |
| 参数变化 | 流消息 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine onRoomMessageSendResult:(int64_t)msgid error:(RoomMessageCode)error; | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onRoomMessageSendResult:(int64_t)msgid error:(ByteRTCRoomMessageSendResult)error; | ByteRTCRoomMessageSendResult 枚举值名称变更 |
| 删除 | 视频管理 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine firstRemoteScreenDecodedOfUid:( NSString* _Nonnull )uid size:(CGSize)size elapsed:(NSInteger)elapsed; | / | |
| 删除 | 视频管理 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine firstRemoteVideoDecodedOfUid:( NSString* _Nonnull )uid size:(CGSize)size elapsed:(NSInteger)elapsed; | / | |
| 删除 | 房间管理 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine onLoginCompletion:(NSArray<id<ByteStream>>* _Nullable)streams errorCode:(NSInteger)errorcode; | / | |
| 删除 | 房间管理 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine didJoinChannel:(NSString * _Nonnull)channel withUid:(nonnull NSString*)uid elapsed:(NSInteger) elapsed | / | |
| 删除 | 房间管理 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine didRejoinChannel:(NSString * _Nonnull)channel withUid:(nonnull NSString*)uid elapsed:(NSInteger) elapsed | / | |
| 删除 | 引擎管理 | (void)rtcEngine:(ByteRtcEngineKit* _Nonnull)engine log:(NSDictionary* _Nonnull)dict; | / | |
| 删除 | 数据统计 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine audioQualityOfUid:(NSString* _Nonnull )uid quality:(ByteNetworkQuality)quality delay:(NSUInteger)delay lost:(NSUInteger)lost | / | |
| 拆分或合并 | 房间管理 | public void onJoinChannelSuccess(String channel, String uid, int elapsedpublic void onRejoinChannelSuccess(String channel, String uid, int elapsed) | public void onJoinRoomResult(String roomId, String uid, int errorCode, int joinType, int elapsed) | 旧版回调合并为 onJoinRoomResult |
| 拆分或合并 | 视频管理 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine didLocalVideoEnabled:(BOOL)enabled byUid:(NSString * _Nonnull)uid; | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine didLocalVideoEnabled:(BOOL)enabled byUid:(NSString * _Nonnull)uid;(void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onUserStartVideoCapture:(NSString *_Nonnull)uid;(void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onUserStopVideoCapture:(NSString *_Nonnull)uid; | 旧版回调拆分为 didLocalVideoEnabled、onUserStartVideoCapture 和 onUserStopVideoCapture |
| 拆分或合并 | 视频管理 | (void)rtcEngine:(ByteRtcEngineKit *_Nonnull)engine videoSizeChangedOfUid:(NSString * _Nonnull)uid size:(CGSize)size __attribute__((deprecated("Deprecated, please use a new interface"))); | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onLocalVideoSizeChanged:(ByteRTCStreamIndex)streamIndex withFrameInfo:(ByteRTCVideoFrameInfo *_Nonnull)frameInfo;(void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onRemoteVideoSizeChanged:(ByteRTCRemoteStreamKey *_Nonnull)streamKey withFrameInfo:(ByteRTCVideoFrameInfo *_Nonnull)frameInfo; | 旧版回调拆分为 onLocalVideoSizeChanged 和 onRemoteVideoSizeChanged |
| 拆分或合并 | 视频管理 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine firstRemoteVideoFrameOfUid:(NSString* _Nonnull )uid size:(CGSize)size elapsed:(NSInteger)elapsed;(void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine firstRemoteScreenFrameOfUid:(NSString* _Nonnull )uid size:(CGSize)size elapsed:(NSInteger)elapsed; | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onFirstRemoteVideoFrameRendered:(ByteRTCRemoteStreamKey * _Nonnull)streamKey withFrameInfo:(ByteRTCVideoFrameInfo * _Nonnull)frameInfo; | 旧版回调合并为 onFirstRemoteVideoFrameRendered |
| 拆分或合并 | 数据统计 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine localVideoStats:(ByteRtcLocalVideoStats * _Nonnull)stats;(void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine localAudioStats:(ByteRtcLocalAudioStats * _Nonnull)stats; | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onLocalStreamStats:(const ByteRTCLocalStreamStats *_Nonnull)stats | 多个旧版回调合并为 rtcEngine:onLocalStreamStats: 中的多个状态 |
| 拆分或合并 | 数据统计 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine remoteVideoStats:(ByteRtcRemoteVideoStats * _Nonnull)stats;(void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine remoteAudioStats:(ByteRtcRemoteVideoStats * _Nonnull)stats; | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onRemoteStreamStats:(const ByteRTCRemoteStreamStats *_Nonnull)stats | 多个旧版回调合并为 rtcEngine:onRemoteStreamStats: 中的多个状态 |
| 名称和参数变化 | 警告码 | - (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine didOccurWarning:(ByteRtcWarningCode)Code; | - (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onWarning:(ByteRTCWarningCode)Code; | |
| 名称和参数变化 | 错误码 | - (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine didOccurError:(ByteRtcErrorCode)errorCode; | - (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onError:(ByteRTCErrorCode)errorCode; | |
| 名称和参数变化 | 房间管理 | public void onLeaveChannel(IRtcEngineEventHandler.RtcStats stats) | public void onLeaveRoom(IRtcEngineEventHandler.RtcRoomStats stats) | |
| 名称和参数变化 | 房间管理 | - (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine didJoinedOfUid:(nonnull NSString*)uid elapsed:(NSInteger)elapsed | - (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onUserJoined:(nonnull ByteRTCUserInfo *)userInfo elapsed:(NSInteger)elapsed | |
| 名称和参数变化 | 房间管理 | - (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine didOfflineOfUid:(NSString* _Nonnull )uid reason(ByteRtcUserOfflineReason)reason | - (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onUserLeave:(NSString *_Nonnull)uid reason:(ByteRTCUserOfflineReason)reason; | |
| 名称和参数变化 | 房间管理 | - (void)rtcEngine:(ByteRtcEngineKit *_Nonnull)engine didPublishSucceedOfStream:(NSString *_Nonnull)userId isScreen:(BOOL)isScreen | - (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onStreamPublishSuccess:(NSString *_Nonnull)userId isScreen:(BOOL)isScreen; | |
| 名称和参数变化 | 视频管理 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine didVideoMuted:(BOOL)muted byUid:(NSString * _Nonnull)uid; | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onUserMuteVideo:(NSString * _Nonnull)uid withMuteState:(ByteRTCMuteState)muteState; | |
| 名称和参数变化 | 视频管理 | (void)rtcEngine:(ByteRtcEngineKit *_Nonnull)engine remoteVideoStateChanged:(NSString *_Nonnull)uid state:(ByteRemoteVideoState)state reason:(ByteRemoteVideoReason)reason elapsed:(NSInteger)elapsed; | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onRemoteVideoStateChanged:(ByteRTCRemoteStreamKey*_Nonnull)streamKey withVideoState:(ByteRTCRemoteVideoState)state withVideoStateReason:(ByteRTCRemoteVideoReason)reason; | |
| 名称和参数变化 | 视频管理 | (void)rtcEngine:(ByteRtcEngineKit *_Nonnull)engine localVideoStateChanged:(ByteLocalVideoStreamState)state error:(ByteLocalVideoStreamError)error; | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onLocalVideoStateChanged:(ByteRTCStreamIndex)streamIndex withStreamState:(ByteRTCLocalVideoStreamState)state withStreamError:(ByteRTCLocalVideoStreamError)error; | |
| 名称和参数变化 | 视频管理 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine firstLocalVideoFrameWithSize:(CGSize)size elapsed:(NSInteger)elapsed; | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onFirstLocalVideoFrameCaptured:(ByteRTCStreamIndex)streamIndex withFrameInfo:(ByteRTCVideoFrameInfo * _Nonnull)frameInfo; | |
| 名称和参数变化 | 数据统计 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine reportRtcStats:(ByteRtcStats * _Nonnull)stats | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onRoomStats:(ByteRTCRoomStats *_Nonnull)stats | |
| 名称和参数变化 | 性能回退 | (void)rtcEngine:(ByteRtcEngineKit *_Nonnull)engine onPerformanceAlarmsWithLevel:(NSInteger)level sourceWantedData:(ByteSourceWantedData *_Nonnull)data; | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onPerformanceAlarmsWithMode:(ByteRTCPerformanceAlarmMode)mode roomId:(NSString *_Nonnull)roomId reason:(ByteRTCPerformanceAlarmReason)reason sourceWantedData:(ByteRTCSourceWantedData *_Nonnull)data; | |
| 名称和参数变化 | 性能回退 | (void)rtcEngine:(ByteRtcEngineKit *_Nonnull)engine OnRemoteStreamSwitch:(ByteRemoteStreamSwitchEvent *_Nonnull)event | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine OnSimulcastSubscribeFallback:(ByteRTCRemoteStreamSwitchEvent *_Nonnull)event | |
| 名称和参数变化 | 音频管理 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine didAudioRouteChanged:(ByteAudioOutputRouting)routing | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onAudioPlaybackDeviceChanged:(ByteRTCAudioPlaybackDevice)device | |
| 名称和参数变化 | 音频管理 | (void)rtcEngine:(ByteRtcEngineKit *_Nonnull)engine localAudioStateChanged:(ByteLocalAudioStreamState)state error:(ByteLocalAudioStreamError)error | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onLocalAudioStateChanged:(ByteRTCLocalAudioStreamState)state error:(ByteRTCLocalAudioStreamError)error | |
| 名称和参数变化 | 音频管理 | (void)rtcEngine:(ByteRtcEngineKit *_Nonnull)engine remoteAudioStateChanged:(NSString *_Nonnull)uid state:(ByteRemoteAudioState)state reason:(ByteRemoteAudioReason)reason elapsed:(NSInteger)elapsed | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onRemoteAudioStateChanged:(ByteRTCRemoteStreamKey * _Nonnull)key state:(ByteRTCRemoteAudioState)state reason:(ByteRTCRemoteAudioStateChangeReason)reason | |
| 名称和参数变化 | 音频管理 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine didAudioMuted:(BOOL)muted byUid:(NSString * _Nonnull)uid | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onUserMuteAudio:(NSString * _Nonnull)uid muteState:(ByteRTCMuteState)muteState | |
| 名称和参数变化 | 音频管理 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine firstLocalAudioFrame:(NSInteger)elapsed | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onFirstLocalAudioFrame:(ByteRTCStreamIndex) streamIndex | |
| 名称和参数变化 | 音频管理 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine firstRemoteAudioFrameOfUid:(NSString * _Nonnull)uid elapsed:(NSInteger)elapsed | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onFirstRemoteAudioFrame:(ByteRTCRemoteStreamKey * _Nonnull)key | |
| 名称和参数变化 | 音频管理 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine reportAudioVolumeIndicationOfSpeakers:(NSArray<ByteRtcAudioVolumeInfo *> * _Nonnull)speakers totalVolume:(NSInteger)totalVolume | (void)rtcEngine:(ByteRTCEngineKit * _Nonnull)engine onAudioVolumeIndication:(NSArray<ByteRTCAudioVolumeInfo *> * _Nonnull)speakers totalRemoteVolume:(NSInteger)totalRemoteVolume | |
| 名称和参数变化 | CDN 推流 | (void)rtcEngine:(ByteRtcEngineKit * _Nonnull)engine TransCodingWithUrl:(NSString * _Nonnull)url errorCode:(ByteRtcTransCodeingErrorCode)errorCode; | (void)rtcEngine:(ByteRTCEngineKit *_Nonnull)engine onLiveTranscodingResult:(NSString *_Nonnull)url errorCode:(ByteRTCTranscodingError)errorCode | ByteRTCTranscodingError 错误码名称变更 |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 名称变化 | ByteAACProfile | ByteRTCAACProfile |
| 名称变化 | ProblemFeedback | ByteRTCProblemFeedbackOption |
| 枚举值增减 | ByteRTCRemoteVideoStats | 删除了枚举值:uid,此变量请参考 ByteRTCRemoteStreamStats 中的 uid |
| 枚举值增减 | ByteRTCRemoteAudioStats | 删除了枚举值:uid,此变量请参考 ByteRTCRemoteStreamStats 中的 uid |
| 类型增减 | ByteAudioDeviceObserver | 删除,且无替代类。 |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前回调 | 变动后回调 | 备注 |
|---|---|---|---|---|
| 拆分或合并 | 引擎管理 | (void)rtcEngineConnectionDidInterrupted:(ByteRtcEngineKit * _Nonnull)engine(void)rtcEngineConnectionDidLost:(ByteRtcEngineKit * _Nonnull)engine | rtcEngine:(ByteRtcEngineKit * _Nonnull)engine connectionChangedToState:(ByteRtcConnectionState) state | 多个旧版回调合并为 rtcEngine:connectionChangedToState: 中的多个状态 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 房间管理 | (BOOL)enableAutoSubscribe:(BOOL)autoSubscribe | (BOOL)enableAutoSubscribe:(ByteSubscribeMode)audioMode videoMode:(ByteSubscribeMode)videoMode; |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 名称变化 | MessageCode | UserMessageCode |
| 枚举值增减 | ByteRtcClientRole | 删除了枚举值:ByteRtc_ClientRole_Audience,建议使用 ByteRtc_ClientRole_Silent_Audience 代替。 |
| 枚举值增减 | ByteRtcConnectionState | 新增了枚举值:ByteRtc_ConnectionState_Lost |
| 枚举值增减 | SubscribeState | 新增了枚举值:SUBSCRIBE_STATE_FAILED_OVER_LIMIT |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增减 | ByteRtcErrorCode | 新增了枚举值:BRERR_OVER_STREAM_PUBLISH_LIMITBRERR_OVER_SCREEN_PUBLISH_LIMITBRERR_OVER_VIDEO_PUBLISH_LIMIT |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 房间管理 | (void)setEncryptType:(ByteEncryptType)encrypt_type key:(NSString *)key | (void)setEncryptType:(ByteEncryptType)encrypt_type key:(NSString * _Nonnull)key |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前回调 | 变动后回调 | 备注 |
|---|---|---|---|---|
| 删除 | (void)setTTMonitorCallBack:(void (^ _Nullable)(NSDictionary * _Nonnull data, NSString * _Nullable logType))callBack; | |||
| 删除 | (void)setByteLog:(BOOL)isConsole callBack:(void (^ _Nullable)(ByteRtcLogLevel leave, NSString * _Nonnull filename, NSString * _Nonnull tag, int line, NSString * _Nonnull funcName, NSString * _Nullable format))callBack; |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 房间管理 | (void)unSubscribeStream:(NSString * _Nonnull)streamId | (void)unSubscribeStream:(NSString *_Nonnull)userId isScreen:(BOOL)isScreen | |
| 参数变化 | 房间管理 | (void)subscribeStream:(NSString * _Nonnull)streamId subscribeConfig:(SubscribeConfig * _Nonnull)info | (void)subscribeStream:(NSString *_Nonnull)userId subscribeConfig:(SubscribeConfig *_Nonnull)info |