如果你希望从此前版本的 Linux 客户端 SDK 升级到最新的客户端 SDK,请在工程文件中,替换最新的客户端 SDK 文件,并参考本文完成 API,回调,参数类型等的替换。

升级过程中,你可能需要参考老版本 API 文档归档。

3.52
方法变更
变更详情方法说明
参数变更feedback参数数据类型变更
回调变更
变更详情方法说明

参数变更

onPublicStreamSEIMessageReceived

参数 sourceType 的类型由 SEIMessageSourceType 变更为 DataMessageSourceType
拆分为:

错误码变更
变更详情错误码说明

枚举值变更

PublicStreamErrorCode

新增枚举值:

  • kPublicStreamErrorCodePullNoPushStream = 1300

名称变更:

  • kPublicStreamOK = 0 更新为 kPublicStreamErrorCodeOK = 0

  • kPublicStreamPushInvalidParam = 1191 更新为 kPublicStreamErrorCodePushInvalidParam = 119

  • kPublicStreamPushInvalidStatus = 1192 更新为 kPublicStreamErrorCodePushInvalidStatus = 1192

  • kPublicStreamPushInternalError = 1193 更新为 kPublicStreamErrorCodePushInternalError = 1193

  • kPublicStreamPushFailed = 1195 更新为 kPublicStreamErrorCodePushFailed = 1195

  • kPublicStreamPushTimeout = 1196 更新为 kPublicStreamErrorCodePushTimeout = 1196

ErrorCode

新增枚举值 ByteRTCErrorCodeJoinRoomRoomForbidden=-1025 和 ByteRTCErrorCodeJoinRoomUserForbidden=-1026。
当服务端在指定房间封禁指定用户,而此用户加入房间失败,或从房间中被踢出时收到。

3.50
头文件变更

原 bytertc_common_defines.h 文件拆分为 bytertc_media_defines.h 及 bytertc_rts_defines.h

方法变更
变更详情功能模块变动前方法变动后方法备注

拆分

视频管理

virtual int registerFaceDetectionObserver(IFaceDetectionObserver* observer, int interval_ms) = 0;

  • virtual int enableFaceDetection(IFaceDetectionObserver* observer, unsigned int interval_ms, const char* faceModelPath) = 0;
  • virtual int disableFaceDetection() = 0;

解除人脸识别与视频特效之间的耦合,提升接口易用性。

参数类型变更屏幕共享virtual int setScreenVideoEncoderConfig(const VideoEncoderConfig& screen_solution) = 0;virtual int setScreenVideoEncoderConfig(const ScreenVideoEncoderConfig& screen_solution) = 0;参数类型变更为新增的 ScreenVideoEncoderConfig

行为变更

屏幕共享

  • setVideoSourceType: 屏幕流默认为外部源
  • setScreenAudioSourceType: 当前设置为内部源时,且已开启了采集,调用该接口切换为外部源时,不会停止内部采集
  • startScreenVideoCapture: 当前为外部源时,调用本接口将自动切换为内部源,并开启采集
  • stopScreenVideoCapture: 当前为外部源时,调用本接口将关闭外部采集
  • setVideoSourceType: 屏幕流默认为内部源
  • setScreenAudioSourceType: 当前设置为内部源时,且已开启了采集,调用该接口切换为外部源时,自动停止内部采集
  • startScreenVideoCapture: 当前为外部源时,调用本接口失败,并触发 `onVideoDeviceWarning`
  • stopScreenVideoCapture: 当前为外部源时,调用本接口失败,并触发 `onVideoDeviceWarning`

优化屏幕共享接口的行为

名称和参数变更

音视频处理

  • virtual int checkLicense(void* androidContext, void* jnienv, const char* licensePath) = 0;
  • virtual void setAlgoModelPath(const char* modelPath) = 0;

virtual int initCVResource(const char* license_file_path, const char* algo_model_dir) = 0;

统一返回值

virtual int enableEffect(bool enabled) = 0;

  • virtual int enableVideoEffect() = 0;
  • virtual int disableVideoEffect() = 0;
virtual int updateNode(const char* nodePath, const char* nodeKey, float nodeValue) = 0;virtual int updateEffectNode(const char* effectNodePath, const char* nodeKey, float nodeValue) = 0;
屏幕分享virtual bool pushScreenFrame(IVideoFrame* frame)virtual int pushScreenVideoFrame``(IVideoFrame* frame)
参数变更消息virtual int sendSEIMessage(StreamIndex stream_index, const uint8_t* message, int length, int repeat_count) = 0;virtual int sendSEIMessage(StreamIndex stream_index, const uint8_t* message, int length, int repeat_count, SEICountPerFrame mode) = 0;支持 SEI 多发模式,即在 1 帧间隔内多次发送 SEI 数据时,多个 SEI 随下个视频帧同时发送。

多个模块

返回值类型变化,例如:

  • 旧方法——virtual void updateToken(const char* token) = 0;

  • 新方法——virtual int updateToken(const char* token) = 0;

该版本中含此变更的方法包括:

updateToken (返回值 void—>int)

setRemoteVideoConfig (返回值 void—>int)

subscribeStream (返回值 void—>int)

unsubscribeStream (返回值 void—>int)

subscribeScreen (返回值 void—>int)

unsubscribeScreen (返回值 void—>int)

pushExternalAudioFrame (返回值 bool—>int)

pullExternalAudioFrame (返回值 bool—>int)

pushExternalVideoFrame (返回值 bool—>int)

setRemoteAudioPlaybackVolume (返回值 void—>int)

pushExternalEncodedVideoFrame (返回值 bool—>int)

setPublicStreamVideoSink (返回值 void—>int)

enableSimulcastMode (返回值 int—>void)

setPublishFallbackOption (返回值 int—>void)

setSubscribeFallbackOption (返回值 int—>void)

名称变更视频管理setRemoteStreamVideoCanvassetRemoteVideoCanvas
CDN 推流onStreamMixingVideoFrameonMixingVideoFrame
onStreamMixingAudioFrameonMixingAudioFrame
onStreamMixingDataFrameonMixingDataFrame
回调变更
变更详情功能模块变动前方法变动后方法备注
参数变更消息virtual void onPublicStreamSEIMessageReceived(const char* public_stream_id, const uint8_t* message, int message_length) { (void)public_stream_id; (void)message; (void)message_length; }virtual void onPublicStreamSEIMessageReceived(const char* public_stream_id, const uint8_t* message, int message_length, SEIMessageSourceType source_type) { (void)public_stream_id; (void)message; (void)message_length; (void)source_type; }
废弃音频管理onLocalAudioStateChanged 和 onLocalVideoStateChanged使用 onAudioDeviceStateChanged 和 onVideoDeviceStateChanged 代替
类型变更
变更详情数据类型备注
取值范围拓展TranscoderLayoutRegion中,width 和 height取值范围由 (0.0, 1.0] 拓展为 [0.0, 1.0]。
枚举值增删UserMessageSendResult新增枚举值:kUserMessageSendResultExceedQPS = 5
RoomMessageSendResult新增枚举值:kRoomMessageSendResultExceedQPS = 5
AudioProcessorMethod新增枚举值:kAudioFrameProcessorEarMonitor = 3
成员变量变更FaceDetectResult新增成员变量:frame_timestamp_us

ContentHint

废弃屏幕共享内部采集的变量content_hint。可通过 VideoEncodePreference设置视频流编码偏好,通过ScreenVideoEncodePreference设置屏幕流编码偏好。

AudioDeviceInfo

增加成员变量 device_short_name[MAX_DEVICE_ID_LENGTH]

ITranscoderParam新增成员变量:TranscoderClientMixParam
变量类型变更空间音频功能中表示空间坐标的 position 的 变量 x, y, z 类型由 int 更改为 float。提升球面立体声渲染效果。

枚举值名称变更

VideoSourceType

枚举值名称增加前缀 k,更改后的枚举值如下:
enum VideoSourceType {
kVideoSourceTypeExternal = 0,
kVideoSourceTypeInternal = 1,
kVideoSourceTypeEncodedWithAutoSimulcast = 2,
kVideoSourceTypeEncodedWithoutAutoSimulcast = 3,
};

配置变更RoomProfileType房间属性的默认值 kRoomProfileTypeCommunication = 0,对应的由 kRoomProfileTypeChatRoom = 6 变更为 kRoomProfileTypeMeeting = 16。
新增PublicStreamErrorCodeonPlayPublicStreamResult 和 onPushPublicStreamResult 中的 errorCode 参数类型由 int 改为 PublicStreamErrorCode
错误码变更
变更详情错误码备注
枚举值增删ErrorCode新增枚举值:kErrorCodeUserIDDifferent = -1014
3.45.2
方法变更

以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:

变更详情功能模块
方法
备注
参数数据结构改动音频管理virtual void enableAudioPropertiesReport(const AudioPropertiesConfig& config) = 0;数据结构中,新增参数:
  • AudioPropertiesMode
  • AudioReportMode
  • 3.45.1
    方法变更

    以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:

    变更详情功能模块
    变动前方法
    变动后方法
    备注
    废弃原方法音频处理virtual void muteAudioPlayback(MuteState mute_state) = 0;virtual void setPlaybackVolume(const int volume) = 0;设置远端用户音量为 0 即可停止播放本地收到的音频流