如果你希望从此前版本的 macOS 客户端 SDK 升级到最新的客户端 SDK,请在工程文件中,替换最新的客户端 SDK 文件,并参考本文完成 API,回调,参数类型等的替换。
升级过程中,你可能需要参考老版本 API 文档归档。
该版本 SDK 产物新增 libAGFX.dylib 和 libbytenn.dylib 依赖库,需手动导入项目,具体添加方式参看添加依赖。
原 ByteRTCCommonDefines.h 文件拆分为 ByteRTCMediaDefines.h 及 ByteRTCRtsDefines.h
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
拆分 | 视频管理 |
| 解除人脸识别与视频特效之间的耦合,提升接口易用性。 | |
参数变更 | 消息 |
| 返回参数类型由 | |
(int64_t)sendUserBinaryMessage:(NSString * _Nonnull)uid message:(NSData * _Nonnull)message config:(ByteRTCMessageConfig)config; | (NSInteger)sendUserBinaryMessage:(NSString * _Nonnull)uid message:(NSData * _Nonnull)message config:(ByteRTCMessageConfig)config; | |||
(int64_t)sendRoomMessage:(NSString *_Nonnull)message NS_SWIFT_NAME(sendRoomMessage(_:)); | (NSInteger)sendRoomMessage:(NSString *_Nonnull)message NS_SWIFT_NAME(sendRoomMessage(_:)); | |||
(int64_t)sendRoomBinaryMessage:(NSData * _Nonnull)message NS_SWIFT_NAME(sendRoomBinaryMessage(_:)); | (NSInteger)sendRoomBinaryMessage:(NSData * _Nonnull)message NS_SWIFT_NAME(sendRoomBinaryMessage(_:)); | |||
(int64_t)sendUserMessageOutsideRoom:(NSString * _Nonnull)userId message:(NSString * _Nonnull)messageStr config:(ByteRTCMessageConfig)config; | (NSInteger)sendUserMessageOutsideRoom:(NSString * _Nonnull)userId message:(NSString * _Nonnull)messageStr config:(ByteRTCMessageConfig)config; | |||
(int64_t)sendUserBinaryMessageOutsideRoom:(NSString * _Nonnull)userId message:(NSData * _Nonnull)messageStr config:(ByteRTCMessageConfig)config; | (NSInteger)sendUserBinaryMessageOutsideRoom:(NSString * _Nonnull)userId message:(NSData * _Nonnull)messageStr config:(ByteRTCMessageConfig)config; | |||
(int64_t)sendServerMessage:(NSString * _Nonnull)messageStr; | (NSInteger)sendServerMessage:(NSString * _Nonnull)messageStr; | |||
(int64_t)sendServerBinaryMessage:(NSData * _Nonnull)messageStr; | (NSInteger)sendServerBinaryMessage:(NSData * _Nonnull)messageStr; | |||
参数类型变更 | 屏幕共享 |
|
| 参数类型变更为新增的 |
行为变更、名称变更 | 屏幕共享 |
|
| 优化屏幕共享接口的行为 |
所属类型变更、名称变更、参数变更 | 音视频处理 |
|
| |
| ||||
(int) setVideoEffectNodes:(NSArray <NSString *> *_Nonnull)effectNodePaths; | (int) setEffectNodes:(NSArray<NSString*>*_Nonnull)effect_nodes; | |||
(int) updateVideoEffectNode:(NSString * _Nonnull)nodePath nodeKey:(NSString * _Nonnull)nodeKey nodeValue:(float) nodeValue; | (int) updateEffectNode:(NSString* _Nonnull)node key:(NSString* _Nonnull)key value:(float) value; | |||
| ||||
(int) setVideoEffectColorFilter:(NSString * _Nonnull)resPath; | (int) setColorFilter:(NSString* _Nonnull)filter_res; | |||
(int) setVideoEffectColorFilterIntensity:(float) intensity; | (int) setColorFilterIntensity:(float) intensity; | |||
| 参数变更 | 消息 | (int)sendSEIMessage:(ByteRTCStreamIndex)streamIndex andMessage:(NSData* _Nonnull)message andRepeatCount:(int)repeatCount; | (int)sendSEIMessage:(ByteRTCStreamIndex)streamIndex andMessage:(NSData* _Nonnull)message andRepeatCount:(int)repeatCount andCountPerFrame:(ByteRTCSEICountPerFrame) mode; | 支持 SEI 多发模式,即在 1 帧间隔内多次发送 SEI 数据时,多个 SEI 随下个视频帧同时发送。 |
多个模块 | 返回值类型变化,例如:
以下接口返回值类型由 void 变为 int,具体 int 值含义参考新增数据结构 | |||
视频管理 |
|
| ||
|
| |||
名称和参数变更 | 音视频传输 |
|
| |
|
| |||
屏幕分享 |
|
|
| |
自定义流处理 |
|
|
| |
|
|
| ||
名称变更 | 高级功能 |
| 大驼峰变为小驼峰。 | |
SetVideoWatermark | setVideoWatermark | |||
| 音视频处理 | ClearVideoWatermark | clearVideoWatermark | ||
ClearVideoWatermark | clearVideoWatermark | |||
| 视频管理 | SetVideoEncoderConfig | setVideoEncoderConfig | ||
SetMaxVideoEncoderConfig | setMaxVideoEncoderConfig | |||
| 屏幕分享 | getScreenCaptureSourceThumbnail | getThumbnail | ||
| 房间管理 | joinRoomByToken | joinRoom | ||
renewToken | updateToken | |||
setRtcRoomDelegate | setRTCRoomDelegate | 修正大小写。 | ||
| 引擎管理 | getSdkVersion | getSDKVersion | 修正大小写。 | |
| 安全与加密 | setEncryptType | setEncryptInfo | ||
| 屏幕分享 | SetScreenVideoEncoderConfig | setScreenVideoEncoderConfig | ||
| 音频管理 | startPlaybackDeviceTest | startAudioPlaybackDeviceTest | ||
stopPlaybackDeviceTest | stopAudioPlaybackDeviceTest | |||
删除 | 自定义流处理 | 删除:
| 由以下接口替代: | |
| 变更详情 | 功能模块 | 变动前回调 | 变动后回调 | 备注 |
|---|---|---|---|---|
| 废弃 | 音频管理 | onLocalAudioStateChanged 和 onLocalVideoStateChanged | 使用 onAudioDeviceStateChanged 和 onVideoDeviceStateChanged 代替 | |
参数变更 | 消息 |
|
| |
(void)rtcRoom:( ByteRTCRoom *_Nonnull)rtcRoom onRoomMessageSendResult:(int64_t)msgid error:(ByteRTCRoomMessageSendResult)error; | (void)rtcRoom:( ByteRTCRoom *_Nonnull)rtcRoom onRoomMessageSendResult:(NSInteger)msgid error:(ByteRTCRoomMessageSendResult)error; | |||
(void)rtcEngine:(ByteRTCVideo * _Nonnull)engine onUserMessageSendResultOutsideRoom:(int64_t)msgid error:(ByteRTCUserMessageSendResult)error; | (void)rtcEngine:(ByteRTCVideo * _Nonnull)engine onUserMessageSendResultOutsideRoom:(NSInteger)msgid error:(ByteRTCUserMessageSendResult)error; | |||
CDN 推流 |
| 新增参数 | ||
消息 |
| |||
| 名称变更 | 房间管理 | onLeaveRoomWithStats | onLeaveRoom | |
音视频传输 |
| |||
networkTypeChangedToType | onNetworkTypeChanged | |||
reportSysStats | onSysStats | |||
网络管理 |
| |||
OnSimulcastSubscribeFallback | onSimulcastSubscribeFallback | 大驼峰变为小驼峰。 | ||
| 安全与加密 | ByteRTCEncryptRawData | onEncryptData | ||
ByteRTCDecryptRawData | onDecryptData | |||
| 视频管理 | onFaceDetectionResult | onFaceDetectResult | ||
删除 | 音视频传输 | 删除: | / | |
删除回调类 | 范围语音 |
| 此前,在手动订阅的场景下,如果你希望使用范围语音功能,你必须根据此回调获取的衰减系数,设定音量。 |
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 取值范围拓展 | ByteRTCVideoCompositingRegion 中,width 和 height | 取值范围由 (0.0, 1.0] 拓展为 [0.0, 1.0]。 |
| 枚举值增删 | ByteRTCAudioFrameMethod | 新增枚举值:ByteRTCAudioFrameProcessorEarMonitor = 3 |
| 成员变量变更 | ByteRTCFaceDetectionResult | 新增成员变量:frameTimestamp |
ByteRTCVideoCanvas | 删除变量:roomId 和 uid | |
| ||
ByteRTCLiveTranscoding | 新增成员变量:ByteRTCTranscodingClientMixParam | |
| 变量类型变更 | 空间音频功能中表示空间坐标的 position 的 变量 x, y, z 类型由 int 更改为 float。 | 提升球面立体声渲染效果。 |
| 配置变更 | ByteRTCRoomProfile | 房间属性的默认值 ByteRTCRoomProfileCommunication = 0,对应的由 ByteRTCRoomProfileChatRoom = 6 变更为 ByteRTCRoomProfileMeeting = 16。 |
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | ByteRTCErrorCode | 新增枚举值:ByteRTCUserIDDifferent = -1014 |
ByteRTCUserMessageSendResult | 新增枚举值:ByteRTCUserMessageSendResultExceedQPS = 5 | |
ByteRTCRoomMessageSendResult | 新增枚举值:ByteRTCRoomMessageSendResultExceedQPS = 5 | |
| 新增 | ByteRTCPublicStreamErrorCode | onPlayPublicStreamResult: 和 onPushPublicStreamResult: 中的 errorCode 参数类型由 ByteRTCTranscodingError 改为 ByteRTCPublicStreamErrorCode |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举值增删 | ByteRTCAudioFrameMethod | 新增屏幕共享音频的枚举值: ByteRTCAudioFrameProcessorScreen = 4 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 方法 | 备注 |
|---|---|---|---|
| 参数数据结构改动 | 音频管理 | (void)enableAudioPropertiesReport:(ByteRTCAudioPropertiesConfig* _Nonnull)config; | 数据结构中,新增参数:ByteRTCAudioPropertiesModeByteRTCAudioReportMode |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 废弃原方法 | 音频处理 | (void)muteAudioPlayback:(ByteRTCMuteState)muteState; | (void)setPlaybackVolume:(NSInteger)volume; | 设置远端用户音量为 0 即可停止播放本地收到的音频流 |