如果你希望从此前版本的 Android 客户端 SDK 升级到最新的客户端 SDK,请在工程文件中,替换最新的客户端 SDK 文件,并参考本文完成 API,回调,参数类型等的替换。
升级过程中,你可能需要参考老版本 API 文档归档。
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 方法 | 备注 |
|---|---|---|---|
| 参数数据结构改动 | 音频管理 | public abstract void enableAudioPropertiesReport(AudioPropertiesConfig config); | 数据结构中,新增参数:AudioPropertiesMode |
| 方法行为变更 | 高级功能 | public abstract void setEarMonitorMode(EarMonitorMode mode); | 自适应启用硬件耳返 |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 成员变量增删 | AudioScenarioType | 新增高音质畅聊模式:AUDIO_SCENARIO_HIGHQUALITY_CHAT |
| 枚举值增删 | AudioProcessorMethod | 新增获取软件耳返音频:AUDIO_FRAME_PROCESSOR_EAR_MONITOR(3) |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 废弃原方法 | 音频处理 | public abstract void muteAudioPlayback(MuteState muteState); | public abstract void setPlaybackVolume(int volume); | 设置远端用户音量为 0 即可停止播放本地收到的音频流 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
合并、名称和参数变更 | 音视频处理 |
|
|
该版本部分头文件名称发生变化,请参照下表在工程文件中进行调整:
| 平台 | 3.42 | 3.43 |
|---|---|---|
| Android | ../IRTCRoom.java | ../RTCRoom.java |
| ../RTCEngine.java | ../RTCVideo.java | |
| ../IRTCEngineEventHandler.java | ../IRTCVideoEventHandler.java |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 基础类名变更 | 所有模块 | public abstract class RTCEngine | public abstract class RTCVideo | |
| 名称和参数变更 | 多房间 | public abstract IRTCRoom createRoom(String roomId); | public abstract RTCRoom createRTCRoom(String roomId); | |
| 引擎管理 | public static synchronized RTCEngine createEngine(Context context, String appId, IRTCEngineEventHandler handler, Object eglContext, JSONObject parameters) | public static synchronized RTCVideo createRTCVideo(Context context, String appId, IRTCVideoEventHandler handler, Object eglContext, JSONObject parameters) | ||
public static synchronized void destroyEngine(RTCEngine engine) | public static synchronized void destroyRTCVideo(RTCVideo engine) | |||
| 位置迁移,所属类型变更 | 以下方法从 RTCVideo(原 RTCEngine)类下移除,使用 RTCRoom 类中的同名方法代替: | |||
| 参数变更 | 音频管理 | public abstract void setRemoteAudioPlaybackVolume(String uid, int volume); | public abstract void setRemoteAudioPlaybackVolume(String roomId, String uid, int volume); | 新增 roomId 参数,且必填。 |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 基础类名变更 | 所有模块 | public abstract class IRTCEngineEventHandler | public abstract class IRTCVideoEventHandler | |
| 位置迁移,所属类型变更 | 以下回调从 IRTCVideoEventHandler(原 IRTCEngineEventHandler)类下移除,使用 IRTCRoomEventHandler 类中的同名回调代替: | |||
| 参数变更 | 音频管理 | public void onUserStartAudioCapture(String uid) | public void onUserStartAudioCapture(String roomId, String uid) | |
public void onUserStopAudioCapture(String uid) | public void onUserStopAudioCapture(String roomId, String uid) | |||
| 音视频传输 | public void onUserStartVideoCapture(String uid) | public void onUserStartVideoCapture(String roomId, String uid) | ||
public void onUserStopVideoCapture(String uid) | public void onUserStopVideoCapture(String roomId, String uid) | |||
| 房间管理 | public void onAudioFrameSendStateChanged(RtcUser user, FirstFrameSendState state) | public void onAudioFrameSendStateChanged(String roomId, RtcUser user, FirstFrameSendState state) | ||
public void onVideoFrameSendStateChanged(RtcUser user, FirstFrameSendState state) | public void onVideoFrameSendStateChanged(String roomId, RtcUser user, FirstFrameSendState state) | |||
public void onScreenVideoFrameSendStateChanged(RtcUser user, FirstFrameSendState state) | public void onScreenVideoFrameSendStateChanged(String roomId, RtcUser user, FirstFrameSendState state) | |||
public void onAudioFramePlayStateChanged(RtcUser user, FirstFramePlayState state) | public void onAudioFramePlayStateChanged(String roomId, RtcUser user, FirstFramePlayState state) | |||
public void onVideoFramePlayStateChanged(RtcUser user, FirstFramePlayState state) | public void onVideoFramePlayStateChanged(String roomId, RtcUser user, FirstFramePlayState state) | |||
public void onScreenVideoFramePlayStateChanged(RtcUser user, FirstFramePlayState state) | public void onScreenVideoFramePlayStateChanged(String roomId, RtcUser user, FirstFramePlayState state) | |||
| 公共流管理 | public void onPushPublicStreamResult(String publicStreamId, int errorCode) | public void onPushPublicStreamResult(String roomId, String publicStreamId, int error) | ||
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 成员变量增删 | VideoEncoderConfig | 删除成员变量:ScaleMode |
| 枚举值增删 | ConnectionState | 增加枚举值:CONNECTION_STATE_FAILED(7) |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | ErrorCode | 新增枚举值:-1084 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 基础类名变更 | 所有模块 | public abstract class IRTCRoom | public abstract class RTCRoom | |
| 位置迁移,所属类型变更 | 多房间 | 以下方法从 RTCRoom(原 IRTCRoom)类下移除,使用 RTCEngine 类中的同名方法代替: | 由于新方法变更为从引擎类上调用,因此增加了 roomId 相关的字段,且均为必填字段。 | |
| 参数变更 | 音频路由 | public abstract int setAudioRoute(AudioRoute audioRouteDevice); | public abstract int setAudioRoute(AudioRoute audioRoute); | |
| 消息 | public abstract long sendUserMessage(String userId, String messageStr); | public abstract long sendUserMessage(String userId, String messageStr, MessageConfig config); | ||
public abstract long sendUserBinaryMessage(String userId, byte[] buffer); | public abstract long sendUserBinaryMessage(String userId, byte[] buffer, MessageConfig config); | |||
public abstract void sendRoomMessage(String messageStr); | public abstract long sendRoomMessage(String messageStr); | |||
public abstract void sendRoomBinaryMessage(byte[] buffer); | public abstract long sendRoomBinaryMessage(byte[] buffer); | |||
public abstract long sendUserMessageOutsideRoom(String uid, String message); | public abstract long sendUserMessageOutsideRoom(String uid, String message, MessageConfig config); | |||
public abstract long sendUserBinaryMessageOutsideRoom(String uid, byte[] buffer); | public abstract long sendUserBinaryMessageOutsideRoom(String uid, byte[] buffer, MessageConfig config); | |||
| 方法重构 | 自定义音频处理 | public abstract int registerLocalAudioProcessor(IAudioProcessor audioProcessor, AudioFormat audioFormat); | public abstract int registerAudioProcessor(IAudioFrameProcessor processor);public abstract void enableAudioProcessor(AudioProcessorMethod method, AudioFormat format);public abstract void disableAudioProcessor(AudioProcessorMethod method); | |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 位置迁移,所属类型变更 | 多房间 | 以下回调从 IRTCRoomEventHandler 类下移除,使用 IRTCEngineEventHandler 类中的同名回调代替: | ||
| 名称和参数变更 | 多房间 | public abstract void onRtcStats(IRTCEngineEventHandler.RTCRoomStats stats); | public void onRoomStats(RTCRoomStats stats) {} | |
| 参数变更 | 音频路由 | public void onAudioRouteChanged(AudioRoute device) {} | public void onAudioRouteChanged(AudioRoute route) {} | |
| 回调重构 | 自定义音频处理 | public interface IAudioProcessor {int processAudioFrame(IAudioFrame audioFrame);} | public interface IAudioFrameProcessor{ int onProcessRecordAudioFrame(IAudioFrame audioFrame); int onProcesslaybackAudioFrame(IAudioFrame audioFrame); int onProcessRemoteUserAudioFrame(RemoteStreamKey stream_info, IAudioFrame audioFrame);} | |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 位置迁移,所属类型变更 | 以下数据类型从 RTCEngine 类下移出: 以下数据类型从 IRTCEngineEventHandler 类下移出 | |
枚举值增删 |
| 增加以下枚举值:
|
| 枚举值增删 | AudioProfileType | 增加以下枚举值:AUDIO_PROFILE_STANDARD_STEREO(4)AUDIO_PROFILE_HD_MONO(5) |
| 成员变量增删 | LocalVideoStats | 删除以下成员变量:targetKBitratepublic int targetFrameRate |
| 成员变量增删 | RTCRoomStats | 增加以下成员变量值:txScreenKBitRaterxScreenKBitRate |
| 枚举值增删 | MediaDeviceWarning | 增加以下枚举值:MEDIA_DEVICE_WARNING_SET_AUDIO_ROUTE_INVALID_SCENARIO = 20MEDIA_DEVICE_WARNING_SET_AUDIO_ROUTE_NOT_EXISTS = 21MEDIA_DEVICE_WARNING_SET_AUDIO_ROUTE_FAILED_BY_PRIORITY = 22MEDIA_DEVICE_WARNING_SET_AUDIO_ROUTE_NOT_VOIP_MODE = 23MEDIA_DEVICE_WARNING_SET_AUDIO_ROUTE_DEVICE_NOT_START = 24 |
| 枚举值含义变更 | AudioScenarioType | 枚举值对应的语音模式决策逻辑发生变化,本地是否播放不再是决策因素,只取决于麦克风是否开启 |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | WarningCode | 新增枚举值:-2014 |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 合并或拆分 | 房间管理 | public void onJoinRoomResult(String roomId, String uid, int errorCode, int joinType, int elapsed) {} | public void onRoomStateChanged(String roomId, String uid, int state, String extraInfo) {}public void onStreamStateChanged(String roomId, String uid, int state, String extraInfo) {} | |
| 合并或拆分 | 多房间 | public abstract void onJoinRoomResult(String roomId, String uid, int errorCode, int joinType, int elapsed);public abstract void onRoomWarning(int warn);public abstract void onRoomError(int err); | public abstract void onRoomStateChanged(String roomId, String uid, int state, String extraInfo);public abstract void onStreamStateChanged(String roomId, String uid, int state, String extraInfo); |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 名称和参数变更 | 位置语音 | public abstract IPositionAudioRender getPositionAudioRender(); | public abstract ISpatialAudio getSpatialAudio(); | 接口由 RTCEngine 类移动至 IRTCRoom 类 |
| 名称变更 | 音频管理 | void enableAudioSpatialRender(boolean enable); | void enableSpatialAudio(boolean enable); | |
| 原接口废弃,使用新接口代替 | 音频管理 | void enableExternalAudioDevice(AudioFormat recordingFormat, AudioFormat playbackFormat);void disableExternalAudioDevice(); | int setAudioSourceType (AudioSourceType type);int setAudioRenderType (AudioRenderType type); | |
| 参数变更 | 转推直播 | public int getMixType() { return mixType; } | public ByteRTCStreamMixingType getMixType() { return mixType; } | 修改可预定义的参数为枚举类型 |
public void setMixType(int mixType) { this.mixType = mixType; } | public void setMixType(ByteRTCStreamMixingType mixType) { this.mixType = mixType; } | |||
public Region renderMode(int renderMode) { this.renderMode = renderMode; return this; } | public Region renderMode(TranscoderRenderMode renderMode) { this.renderMode = renderMode; return this; } | |||
public Region contentControl(int contentControl) { this.contentControl = contentControl; return this; } | public Region contentControl(TranscoderContentControlType contentControl) { this.contentControl = contentControl; return this; } |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举值增删 | AACProfile | 删除枚举值:AAC_PROFILE_MAIN("MAIN") |
| 类型增减 | TranscoderRenderMode | 新增 |
| 类型增减 | TranscoderContentControlType | 新增 |
| 成员函数变更 | Region | 成员函数renderMode的传入参数变更为枚举类型 |
| 成员函数变更 | Region | 成员函数contentControl的传入参数变更为枚举类型 |
| 类型名称变化 | AudioRoute | 类型名由AudioRouteDevice修改为 AudioRoute |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | ErrorCode | 新增枚举值:-1083 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 返回值变更 | 实时消息 | void login(String token, String uid) | long login(String token, String uid) | --- |
API 行为变更 | 订阅媒体流 | SDK 在每条远端流属性中维护订阅关系。如果该流被移除,订阅关系也将取消 | SDK 在房间属性中维护订阅关系列表。订阅关系将在用户退房后才会取消。 | --- |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 实时消息 | public void onServerMessageSendResult(long msgid, int error) {} | public void onServerMessageSendResult(long msgid, int error, ByteBuffer message) {} | |
| 参数变化 | 转推直播 | void onStreamMixingEvent(ByteRTCStreamMixingEvent eventType, String taskId, int error, ByteRTCStreamMixingType mixType); | void onStreamMixingEvent(ByteRTCStreamMixingEvent eventType, String taskId, ByteRTCTranscoderErrorCode error, ByteRTCStreamMixingType mixType); | |
| 参数变化 | 转推直播 | public void onRoomMessageSendResult(long msgid, int error) | public void onRoomMessageSendResult(long msgid, RoomMessageSendResult error) |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举类新增 | TranscodingError |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 替换 | 音频路由设置 | public abstract int setAudioPlaybackDevice(AudioPlaybackDevice audioPlaybackDevice) | public abstract int setAudioRoute(AudioRouteDevice audioRouteDevice); |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 替换 | 音频路由设置 | public void onAudioPlaybackDeviceChanged(AudioPlaybackDevice device){} | public void onAudioRouteChanged(AudioRouteDevice device){} |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 成员变量增删 | SubscribeConfig | 新增成员变量:framerate |
| 成员函数参数变更 | RemoteVideoConfig | 成员函数 RemoteVideoConfig 中参数 ration 变为 framerate,由输入与原始帧率的比例变为输入期望订阅的最大帧率 |
| 枚举值增删 | AudioMixingError | 新增枚举值:AUDIO_MIXING_ERROR_INVALID_PLAYBACK_SPEED |
| 枚举值增删 | MediaDeviceState | 新增枚举值:MEDIA_DEVICE_STATE_INTERRUPTION_BEGAN,表示媒体设备采集暂停,等待自动恢复 |
| 枚举值增删 | MediaDeviceState | 新增枚举值:MEDIA_DEVICE_STATE_INTERRUPTION_ENDED,表示媒体设备采集已自动恢复 |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | ErrorCode | 新增错误码:ERROR_CODE_TOKEN_EXPIRED,表示用户因 Token 过期被踢出房间 |
| 枚举值增删 | ErrorCode | 新增枚举值:ERROR_CODE_UPDATE_TOKEN_WITH_INVALID_TOKEN,表示调用 updateToken 使用的 Token 无效 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 合并 | 音频数据回调 | public abstract boolean setRecordingAudioFrameParameters(int sampleRate, int channels);public abstract boolean setPlaybackAudioFrameParameters(int sampleRate, int channels);public abstract boolean setMixedAudioFrameParameters(int sampleRate, int channels); | public abstract void enableAudioFrameCallback(AudioFrameCallbackMethod method, AudioFormat format); | 在format中设置回调的音频数据类型 |
| 参数增加 | 本地录制 | public abstract int startFileRecording(StreamIndex type, RecordingConfig config) | public abstract int startFileRecording(StreamIndex type, RecordingConfig config, RecordingType recordingType); |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
转换buffer与getDataBuffer,示例代码:
public byte[] toByteArray(ByteBuffer byteBuffer){
if(byteBuffer == null){
return null;
}
if(byteBuffer.isDirect()){
// 如果 byteBuffer 是 Direct 的,则必须拷贝一次
byte[] bytearray = new byte[byteBuffer.remaining()];
byteBuffer.get(bytearray);
return bytearray;
}
// 如果 byteBuffer 不是 Direct 的,则可以不拷贝直接返回引用
return byteBuffer.array();
}
public ByteBuffer toByteBuffer(byte[] array){
if(array == null){
return null;
}
return ByteBuffer.wrap(array);
}
转换samples与data_size(),示例代码:
samples = data_size() / (channel() * 2)
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 类型增减 | AudioFrameCallbackMethod | 新增 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举类增减 | ScreenMediaType | 新增枚举类 |
| 成员变量变化 | MediaDeviceType | 新增成员变量:MEDIA_DEVICE_TYPE_SCREEN_VIDEO_CAPTURE_DEVICE |
| 成员变量变化 | LocalStreamStats 和 RemoteStreamStats | txQuality 和 rxQuality 成员变量移动到了新增类型 NetworkQualityStats 中,通过 onNetworkQuality 回调获取 |
| 成员变量变化 | RTCRoomConfig | 新增 remoteVideoConfig |
| 成员变量变化 | MultiRoomConfig | 新增 remoteVideoConfig |
| 成员变量变化 | AudioPropertiesInfo | 成员变量 volume 拆分为 linearVolume 和 nonlinearVolume |
自此版本起,本地视频采集参数默认由系统自动设置,而不是和编码参数保持一致。你可以通过 VideoCaptureConfig 进行相关设置。如果你的代码逻辑中对采集到的视频帧进行了自定义处理,应对处理逻辑进行相应修改。
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 视频管理 | public abstract int setVideoCaptureConfig(VideoCaptureConfig videoCaptureConfig); | public abstract int setVideoCaptureConfig(VideoCaptureConfig videoCaptureConfig); | 增加摄像头采集参数中的模式设置 |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 名称变化 | 视频管理 | public void onFirstRemoteVideoFrameRendered(RemoteStreamKey remoteStreamKey, VideoFrameInfo frameInfo) {} | public void onFirstRemoteVideoFrameDecoded(RemoteStreamKey remoteStreamKey, VideoFrameInfo frameInfo) {} | |
| 名称变化 | 多房间 | public abstract void onFirstRemoteVideoFrameRendered(RemoteStreamKey remoteStreamKey, VideoFrameInfo frameInfo); | public abstract void onFirstRemoteVideoFrameDecoded(RemoteStreamKey remoteStreamKey, VideoFrameInfo frameInfo); |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举值增删 | NetworkDetectionStopReason | 新增了枚举值:NetworkDetectionStopReasonInnerErr |
| 枚举值增删 | AudioMixingError | 新增了枚举值:AUDIO_MIXING_ERROR_ID_TYPE_INVALID_PITCH |
| 成员变量变化 | AudioMixingConfig | 新增成员变量:position 和 callbackOnProgressInterval |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | WarningCode | 新增了枚举值:-5011 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 屏幕共享 | public abstract boolean pushScreenFrame(RTCVideoFrame videoFrame); | public abstract boolean pushScreenFrame(VideoFrame videoFrame); | |
| 参数变化 | 自定义视频采集渲染 | public abstract boolean pushExternalVideoFrame(RTCVideoFrame frame);public abstract boolean pushExternalVideoFrame(RTCVideoFrame frame, boolean isDirectEncode); | public abstract boolean pushExternalVideoFrame(VideoFrame frame);public abstract boolean pushExternalVideoFrame(VideoFrame frame, boolean isDirectEncode); | |
| 参数变化 | 音频管理 | public abstract void enableAudioMixingFrame(AudioMixingType type);public abstract void disableAudioMixingFrame()public abstract int pushAudioMixingFrame(AudioFrame audioFrame) | public abstract void enableAudioMixingFrame(int id, AudioMixingType type);public abstract void disableAudioMixingFrame(int id);public abstract int pushAudioMixingFrame(int id, AudioFrame audioFrame); |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | WarningCode | 废弃了枚举值 -5002 ~ -5008。使用 public void onMediaDeviceStateChanged(String device_id, int device_type, int device_state, int device_error) {} 代替。 |
| 枚举值增删 | LocalVideoStreamError | 新增了枚举值 7。 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 房间管理 | public abstract void joinRoom(String token, String roomId, UserInfo userInfo, RTCRoomConfig roomConfig); | public abstract int joinRoom(String token, String roomId, UserInfo userInfo, RTCRoomConfig roomConfig); | |
| 参数变化 | 多房间 | public abstract void joinRoom(String token, UserInfo userInfo, MultiRoomConfig roomConfig); | public abstract int joinRoom(String token, UserInfo userInfo, MultiRoomConfig roomConfig); | |
| 参数变化 | 视频管理 | public abstract void setVideoSourceType(VideoSourceType type); | public abstract void setVideoSourceType(StreamIndex index, VideoSourceType type); | |
| 名称和参数均变化 | 房间管理 | public abstract void setAudioVolumeIndicationInterval(int interval); | public abstract void enableAudioPropertiesReport(AudioPropertiesConfig config); | |
| 名称和参数均变化 | 视频管理 | public abstract int setLocalVideoMirrorMode(MirrorMode mirrorMode); | public abstract int setLocalVideoMirrorType(MirrorType mirrorType); |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 拆分 | 音频管理 | public void onAudioVolumeIndication(IRTCEngineEventHandler.AudioVolumeInfo[] speakers, int totalRemoteVolume) | public void onLocalAudioPropertiesReport(LocalAudioPropertiesInfo[] audioPropertiesInfos){}public void onRemoteAudioPropertiesReport(RemoteAudioPropertiesInfo[] audioPropertiesInfos, int totalRemoteVolume) | 旧版回调拆分为 onLocalAudioPropertiesReport 和 onRemoteAudioPropertiesReport |
| 删除 | 视频管理 | public void onMirrorStateChanged(boolean mirrored){} | / |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | AudioSampleRate | 新增了枚举值:AUDIO_SAMPLE_RATE_AUTO |
| 枚举值增删 | AudioChannel | 新增了枚举值:AUDIO_CHANNEL_AUTO |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 引擎管理 | public static int feedback(Context context, int grade, int type, String problemDesc){return RTCEngineImpl.feedback(context, grade, type, problemDesc);} | public abstract int feedback(List<ProblemFeedback> types, String problemDesc); | |
| 名称和参数均变化 | 音频管理 | public abstract void setRecordingVolume(int volume); | public abstract void setCaptureVolume(StreamIndex index, int volume); | |
| 名称和参数均变化 | 视频管理 | public abstract void registerMetadataObserver(IMetadataObserver observer); | public abstract int sendSEIMessage(StreamIndex streamIndex, byte[] message, int repeatCount); | |
| 拆分 | 屏幕共享 | public abstract int startScreenSharing(Intent mediaProjectionResultData, ScreenSharingParameters parameters); | public abstract int startScreenVideoCapture(Intent mediaProjectionResultData);public abstract int publishScreen(); | 解耦屏幕共享流的采集与发布 |
| 拆分 | 屏幕共享 | public abstract int stopScreenSharing(); | public abstract int stopScreenVideoCapture();public abstract int unpublishScreen(); | 解耦屏幕共享流的停止采集与停止发布 |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 名称变化 | 视频数据回调 | public void onMetadataReceived(byte[] buffer, String uid, long timeStampMs); | public void onSEIMessageReceived(RemoteStreamKey remoteStreamKey,ByteBuffer message) |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举值增删 | ProblemFeedback | 删除了枚举值: PROBLEM_CONNECT_FAILEDPROBLEM_VIDEO_LAGGINGPROBLEM_AUDIO_DELAYPROBLEM_EAR_BACK_DELAY |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | WarningCode | 新增了枚举值:WARNING_CODE_SET_SCREEN_AUDIO_SOURCE_TYPE_FAILEDWARNING_CODE_SET_SCREEN_STREAM_INDEX_FAILED |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 房间管理 | public abstract int joinRoom(String token, String roomId, UserInfo userInfo, ChannelProfile profile_type); | public abstract int joinRoom(String token, String roomId, UserInfo userInfo, RTCRoomConfig roomConfig); | |
| 名称和参数均变化 | 房间管理 | public abstract int setUserRole(ClientRole clientRole); | public abstract int setUserVisibility(boolean enable); | |
| 合并 | 房间管理 | public abstract void subscribeStream(String userId, SubscribeConfig info);public abstract void unSubscribe(String userId, boolean isScreen);public abstract void muteRemoteAudio(String uid, MuteState muteState);public abstract int muteRemoteVideo(String uid, MuteState muteState); | public abstract void subscribeUserStream(String uid, StreamIndex streamType, SubscribeMediaType mediaType, SubscribeVideoConfig subscribeVideoConfig); | |
| 合并 | 音频管理/视频管理 | public abstract int muteAllRemoteVideo(MuteState muteState);public abstract void muteAllRemoteAudio(MuteState muteState); | public abstract void pauseAllSubscribedStream(PauseResumeControlMediaType mediaType); | 通过 pauseAllSubscribedStream 和 resumeAllSubscribedStream 来暂停或接收所有远端媒体流 |
| 删除 | 房间管理 | public abstract void enableAutoSubscribe(SubscribeMode audioMode, SubscribeMode videoMode); | / | 使用 joinRoom 中的 roomConfig 设置 |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举值增删 | AudioScenarioType | 新增了枚举值:AUDIO_SCENARIO_GAME_STREAMING |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | WarningCode | 新增了枚举值:WARNING_CODE_PUBLISH_STREAM_FORBIDEN WARNING_CODE_RECEIVE_USER_NOTIFY_STOP |
| 枚举值增删 | UserMessageSendResult | 新增了枚举值:USER_MESSAGE_SEND_RESULT_NOT_LOGINUSER_MESSAGE_SEND_RESULT_SERVER_PARAMS_NOT_SET |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 混音 | public abstract int getAudioMixingDuration(); | public abstract int getAudioMixingDuration(int id); | |
| 参数变化 | 混音 | public abstract int getAudioMixingCurrentPosition(); | public abstract int getAudioMixingCurrentPosition(int id); | |
| 参数变化 | 混音 | public abstract int setAudioMixingPosition(int pos); | public abstract void setAudioMixingPosition(int id, int position); | |
| 名称和参数均变化 | 混音 | public abstract int preloadEffect(int soundId, String filePath); | public abstract void preloadAudioMixing(int id, String filePath); | |
| 名称和参数均变化 | 混音 | public abstract boolean pushAudioMixingStreamData(byte[] audioFrame, int frameNum); | public abstract int pushAudioMixingFrame(AudioFrame audioFrame); | |
| 合并 | 自定义视频采集渲染 | int setupRemoteVideoRender(IVideoSink videoSink, String roomid, String uid)int setupRemoteVideoRender(IVideoSink videoSink, String uid)int setupRemoteVideoRender(IVideoSink videoSink, String roomid, String uid, boolean isInitialized)int setupRemoteVideoRender(IVideoSink videoSink, String uid, boolean isInitialized)int setupRemoteScreenRender(IVideoSink videoSink, String roomid, String uid)int setupRemoteScreenRender(IVideoSink videoSink, String uid) | public abstract void setRemoteVideoSink(RemoteStreamKey streamKey, IVideoSink videoSink, @IVideoSink.PixelFormat int requiredFormat); | 多个旧版接口合并为 setRemoteVideoSink |
| 合并 | 自定义视频采集渲染 | int setupLocalVideoRender(IVideoSink videoSink, String uid)int setupLocalVideoRender(IVideoSink videoSink, String uid, boolean isInitialized)int setupLocalScreenRender(IVideoSink videoSink, String uid) | public abstract void setLocalVideoSink(StreamIndex index, IVideoSink videoSink, @IVideoSink.PixelFormat int requiredFormat); | 多个旧版接口合并为 setLocalVideoSink |
| 合并 | 混音 | public abstract int startAudioMixing(String file, boolean loopback, boolean replace, int cycle);public abstract int playEffect(int soundId, String filePath, boolean loopback, int cycle, int volume); | public abstract void startAudioMixing(int id, String filePath, AudioMixingConfig config); | 多个旧版接口合并为 startAudioMixing |
| 合并 | 混音 | public abstract int stopAudioMixing();public abstract int stopEffect(int soundId);public abstract int stopAllEffects(); | public abstract void stopAudioMixing(int id); | 多个旧版接口合并为 stopAudioMixing |
| 合并 | 混音 | public abstract int pauseAudioMixing();public abstract int pauseEffect(int soundId);public abstract int pauseAllEffects(); | public abstract void pauseAudioMixing(int id); | 多个旧版接口合并为 pauseAudioMixing |
| 合并 | 混音 | public abstract int resumeAudioMixing(); public abstract int resumeEffect(int soundId); public abstract int resumeAllEffects(); | public abstract void resumeAudioMixing(int id); | 多个旧版接口合并为 resumeAudioMixing |
| 合并 | 混音 | public abstract int unloadEffect(int soundId);public abstract int unloadAllEffects(); | public abstract void unloadAudioMixing(int id); | 多个旧版接口合并为 unloadAudioMixing |
| 合并 | 混音 | public abstract int adjustAudioMixingVolume(int volume);public abstract int setVolumeOfEffect(int soundId, int volume);public abstract int adjustAudioMixingPlayoutVolume(int volume);public abstract int adjustAudioMixingPublishVolume(int volume);public abstract int setEffectsVolume(int volume); | public abstract void setAudioMixingVolume(int id, int volume, AudioMixingType type); | 多个旧版接口合并为 setAudioMixingVolume |
| 拆分 | 混音 | public abstract void setAudioPlayoutMixStream(boolean enable, int sampleRate, int channelNum); | public abstract void enableAudioMixingFrame(AudioMixingType type);public abstract void disableAudioMixingFrame(); | 旧接口拆分为 enableAudioMixingFrame 和 disableAudioMixingFrame |
| 删除 | 混音 | public abstract int getEffectVolume(int soundId); | / | |
| 删除 | 混音 | public abstract int getAudioMixingStreamCachedFrameNum(); | / |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 引擎管理 | public void onMediaDeviceStateChanged(int device_type, int device_state, int device_error) {} | public void onMediaDeviceStateChanged(String device_id, int device_type, int device_state, int device_error) {} |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 视频特效 | public abstract void setVideoEffectColorFilter(String resFile); | public abstract int setVideoEffectColorFilter(String resFile); | |
| 参数变化 | 视频特效 | public abstract void setVideoEffectColorFilterIntensity(float intensity); | public abstract int setVideoEffectColorFilterIntensity(float intensity); | |
| 参数变化 | 视频管理 | public abstract int muteLocalVideo(MuteState muteState); | public abstract void muteLocalVideo(MuteState muteState); | |
| 名称和参数均变化 | 视频特效 | public abstract void setVideoEffectPath(List<String> effectPaths); | public abstract int setVideoEffectNodes(List<String> effectNodes); | |
| 名称和参数均变化 | 视频特效 | public abstract void updateVideoEffect(String effectPath, String key, float value); | public abstract int updateVideoEffectNode(String effectNode, String key, float value); | |
| 名称和参数均变化 | 视频管理 | public abstract void setVideoInputType(MediaInputType type); | public abstract void setVideoSourceType(VideoSourceType type); | |
| 删除 | 视频特效 | public abstract void addVideoEffectPath(List<String> effectPaths); | / | |
| 删除 | 视频特效 | public abstract void removeVideoEffectPath(List<String> effectPaths); | / | |
| 删除 | 音频管理 | public abstract void setAudioPerformanceProfile(AudioPerformanceProfile profile); | / | |
| 删除 | 视频管理 | public abstract boolean isLocalVideoMirrorOn(); | / | |
| 删除 | 屏幕共享 | public abstract int updateScreenSharingParameters(ScreenSharingParameters parameters); | / |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 拆分 | 音频管理 | public abstract int enableLocalAudio(boolean enabled); | public abstract void startAudioCapture();public abstract void stopAudioCapture(); | |
| 方法行为变化 | 视频管理 | public abstract void startVideoCapture(); | public abstract void startVideoCapture(); | |
| 方法行为变化 | 视频管理 | public abstract void stopVideoCapture(); | public abstract void stopVideoCapture(); | |
| 方法行为变化 | 视频管理 | public abstract void setVideoInputType(MediaInputType type); | public abstract void setVideoInputType(MediaInputType type); | |
| 方法行为变化 | 音频管理 | public abstract void enableExternalAudioDevice(AudioFormat recordingFormat, AudioFormat playbackFormat); | public abstract void enableExternalAudioDevice(AudioFormat recordingFormat, AudioFormat playbackFormat); | |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | WarningCode | 新增了枚举值:WARNING_CODE_MEDIA_DEVICE_OPERATION_DENIED |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | CDN 推流 | public abstract void startLiveTranscoding(LiveTranscoding liveTranscode); | public abstract void startLiveTranscoding(LiveTranscoding liveTranscode, ILiveTranscodingObserver observer); | |
| 参数变化 | 视频管理 | public abstract int switchCamera(); | public abstract int switchCamera(CameraId cameraId); | |
| 名称和参数均变化 | CDN 推流 | public abstract void updateLiveTranscodingLayout(``LiveTranscoding.Layout layout``); | public abstract void updateLiveTranscoding(``LiveTranscoding transcoding``); |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 引擎管理 | void onMediaDeviceStateChanged(int device_type, int device_state) | void onMediaDeviceStateChanged(int device_type, int device_state, int device_error) | 新增了回调参数 device_error |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举值增删 | MediaDeviceState | 删除了枚举值:MEDIA_DEVICE_STATE_START_FAILEDMEDIA_DEVICE_STATE_STOP_FAILEDMEDIA_DEVICE_STATE_RUNTIMEERRORMEDIA_DEVICE_STATE_ADDEDMEDIA_DEVICE_STATE_REMOVED |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | WarningCode | 新增了枚举值:WARNING_CODE_RECORDING_SILENCE |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 名称变化 | 房间管理 | public abstract int renewToken(String token) | public abstract int updateToken(String token) | |
| 名称变化 | 房间管理 | public abstract int leaveChannel() | public abstract int leaveRoom() | |
| 名称变化 | 视频管理 | int setVideoProfiles(VideoStreamDescription[] videoStreamDescriptions) | int setVideoEncoderConfig(List<VideoStreamDescription> videoStreamDescriptions) | |
| 名称变化 | 引擎管理 | public abstract void SetRuntimeParameters(JSONObject params); | public abstract void setRuntimeParameters(JSONObject params); | |
| 名称变化 | 音频管理 | int adjustRecordingSignalVolume(int volume) | void setRecordingVolume(int volume) | |
| 名称变化 | 音频管理 | int adjustPlaybackSignalVolume(int volume) | void setPlaybackVolume(int volume) | |
| 名称变化 | 音频管理 | void AdjustRemoteAudioVolume(String uid, int volume) | void setRemoteAudioPlaybackVolume(String uid, int volume) | |
| 名称变化 | 音频管理 | void SetAudioPerfProfile(AudioPerfProfile profile) | void setAudioPerformanceProfile(AudioPerformanceProfile profile) | |
| 名称变化 | CDN 推流 | public abstract void disableLiveTranscoding() | public abstract void stopLiveTranscoding() | |
| 参数变化 | 视频管理 | int setLocalVideoMirrorMode(int mode) | int setLocalVideoMirrorMode(MirrorMode mirrorMode) | |
| 参数变化 | 性能回退 | public abstract int setPublishFallbackOption(int option) | public abstract int setPublishFallbackOption(PublishFallbackOption option) | |
| 参数变化 | 音频管理 | boolean pushExternalAudioFrame(byte[] audioFrame, int frameNum) | int pushExternalAudioFrame(AudioFrame audioFrame) | |
| 参数变化 | 音频管理 | boolean pullExternalAudioFrame(byte[] audioFrame, int frameNum) | int pullExternalAudioFrame(AudioFrame audioFrame) | |
| 名称和参数均变化 | 房间管理 | public abstract int setClientRole(CLIENT_ROLE_TYPE clientRole) | public abstract int setUserRole(ClientRole clientRole); | |
| 名称和参数均变化 | 房间管理 | public abstract int joinChannel(String token, String channelName, PublisherConfiguration publisherConfiguration, String uid, String traceId) | public abstract int joinRoom(String token, String roomId, UserInfo userInfo, ChannelProfile profile_type) | |
| 名称和参数均变化 | 视频管理 | int muteRemoteVideoStream(String uid, boolean muted) | int muteRemoteVideo(String uid, MuteState mute_state) | |
| 名称和参数均变化 | 视频管理 | int muteLocalVideoStream(boolean muted) | int muteLocalVideo(MuteState state) | |
| 名称和参数均变化 | 视频管理 | int setVideoProfiles(VideoStreamDescription[] videoStreamDescriptions, VideoEncoderConfiguration.ORIENTATION_MODE orientationMode) | int setVideoEncoderConfig(List<VideoStreamDescription> videoStreamDescriptions, VideoEncoderConfiguration.OrientationMode orientationMode) | |
| 名称和参数均变化 | 音频管理 | int setEnableSpeakerphone(boolean enable) | int setAudioPlaybackDevice(AudioPlaybackDevice audioPlaybackDevice) | |
| 名称和参数均变化 | 音频管理 | int enableAudioVolumeIndication(int interval, int smooth) | void setAudioVolumeIndicationInterval(int interval) | |
| 名称和参数均变化 | 音频管理 | int muteLocalAudioStream(boolean muted) | void muteLocalAudio(MuteState muteState) | |
| 名称和参数均变化 | 音频管理 | int muteRemoteAudioStream(String uid, boolean muted) | void muteRemoteAudio(String uid, MuteState muteState) | |
| 名称和参数均变化 | CDN 推流 | public abstract void enableLiveTranscoding(LiveTranscoding liveTranscode) | public abstract void startLiveTranscoding(LiveTranscoding liveTranscode) | |
| 名称和参数均变化 | CDN 推流 | public abstract void setVideoCompositingLayout(LiveTranscoding.Layout layout) | public abstract void updateLiveTranscodingLayout(LiveTranscoding.Layout layout) | |
| 合并 | 视频管理 | void setExternalVideoSource(boolean enable, boolean useTexture, boolean push)void setExternalVideoSource(boolean enable, boolean useTexture, boolean push, boolean needRender) | void setVideoInputType(MediaInputType type) | 多个旧版接口合并为 setVideoInputType |
| 合并 | 视频管理 | int muteAllRemoteVideoStreams(boolean muted)int setDefaultMuteAllRemoteVideoStreams(boolean muted) | int muteAllRemoteVideo(MuteState mute_state) | 多个旧版接口合并为 muteAllRemoteVideo |
| 合并 | 视频管理 | int setupRemoteVideo(VideoCanvas videoCanvas)void setupRemoteScreen(VideoCanvas videoCanvas) | int setRemoteVideoCanvas(String user_id, StreamIndex index, VideoCanvas canvas) | 多个旧版接口合并为 setRemoteVideoCanvas |
| 合并 | 视频管理 | int setupLocalVideo(VideoCanvas local)int setupLocalScreen(VideoCanvas videoCanvas) | int setLocalVideoCanvas(StreamIndex index, VideoCanvas canvas) | 多个旧版接口合并为 setLocalVideoCanvas |
| 合并 | 音频管理 | int muteAllRemoteAudioStreams(boolean muted)int setDefaultMuteAllRemoteAudioStreams(boolean muted) | void muteAllRemoteAudio(MuteState muteState) | 多个旧版接口合并为 muteAllRemoteAudio |
| 拆分 | 视频管理 | int enableLocalVideo(boolean enabled) | void startVideoCapture()void stopVideoCapture() | 旧版接口拆分为 startVideoCapture() 和 stopVideoCapture() |
| 拆分 | 音频管理 | boolean setExternalAudioDevice(boolean enable, int sampleRate, int recordChannelNum, int playoutChannelNum) | void enableExternalAudioDevice(AudioFormat recordingFormat, AudioFormat playbackFormat)void disableExternalAudioDevice() | 旧版接口拆分为 enableExternalAudioDevice 和 disableExternalAudioDevice |
| 删除 | 房间管理 | public abstract int setChannelProfile(CHANNEL_PROFILE_TYPE channelProfile) | / | 删除旧版接口,设置房间模式请使用 joinRoom |
| 删除 | 引擎管理 | public static void enablePerformanceCollect(boolean enable) | / | 删除旧版接口,且无替代接口 |
| 删除 | 引擎管理 | public abstract void setLogFilter(IRtcEngineEventHandler.RtcLogLevel level) | / | 删除旧版接口,且无替代接口 |
| 删除 | 引擎管理 | public static void setLoggerMessageLevel(IRtcEngineEventHandler.RtcLogLevel level) | / | 删除旧版接口,且无替代接口 |
| 删除 | 引擎管理 | public static RtcNativeLibraryLoader getRtcNativeLibraryLoader() | / | 删除旧版接口,且无替代接口 |
| 删除 | 引擎管理 | public static void setEnableLog(boolean enableLog) | / | 删除旧版接口,且无替代接口 |
| 删除 | 音频管理 | boolean setAudioDeviceEventHandler(IRtcEngineAudioDeviceEventHandler handler) | / | 删除旧版接口,且无替代接口 |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 名称变化 | 房间管理 | public abstract void onWarning(int warn) | public abstract void onRoomWarning(int warn) | |
| 名称变化 | 房间管理 | public abstract void onError(int err) | public abstract void onRoomError(int err) | |
| 名称变化 | 房间管理 | public void onUserOffline(String uid, int reason) | public void onUserLeave(String uid, int reason) | |
| 名称变化 | 房间管理 | public void onStreamPublishSucceed(String userId, boolean isScreen) | public void onStreamPublishSuccess(String userId, boolean isScreen) | |
| 名称变化 | 数据统计 | void onRtcStats(IRtcEngineEventHandler.RtcStats stats) | void onRoomStats(RTCRoomStats stats) | |
| 参数变化 | 引擎管理 | void onMediaDeviceStateChanged(int device_type, int device_state) | void onMediaDeviceStateChanged(int device_type, int device_state) | MediaDeviceType 和 MediaDeviceState 枚举值名称变化 |
| 参数变化 | 房间管理 | public void onUserJoined(String uid, int elapsed) | public void onUserJoined(UserInfo userInfo, int elapsed) | |
| 参数变化 | 视频管理 | void onMuteAllRemoteVideo(String uid, boolean muted) | void onMuteAllRemoteVideo(String uid, MuteState muteState) | |
| 参数变化 | 视频管理 | void onUserMuteVideo(String uid, boolean muted) | void onUserMuteVideo(String uid, MuteState muteState) | |
| 参数变化 | 视频管理 | void onRemoteVideoStateChanged(String uid, int state, int reason, int elapsed) | void onRemoteVideoStateChanged(RemoteStreamKey streamKey, RemoteVideoState videoState, RemoteVideoStateChangeReason videoStateReason) | |
| 参数变化 | 视频管理 | void onLocalVideoStateChanged(int state, int error) | void onLocalVideoStateChanged(StreamIndex streamIndex, LocalVideoStreamState state, LocalVideoStreamError error) | |
| 参数变化 | 性能回退 | public void onPerformanceAlarms(int level, SourceWantedData data) | public void onPerformanceAlarms(PerformanceAlarmMode mode, String roomId, PerformanceAlarmReason reason, SourceWantedData data) | |
| 参数变化 | 音频管理 | void onAudioVolumeIndication(IRtcEngineEventHandler.AudioVolumeInfo[] speakers, int totalVolume) | void onAudioVolumeIndication(IRtcEngineEventHandler.AudioVolumeInfo[] speakers, int totalRemoteVolume) | |
| 参数变化 | 音频管理 | void onUserMuteAudio(String uid, boolean muted) | void onUserMuteAudio(String uid, MuteState muteState) | |
| 参数变化 | 音频管理 | void onLocalAudioStateChanged(int state, int error) | void onLocalAudioStateChanged(LocalAudioStreamState state, LocalAudioStreamError error) | |
| 参数变化 | 音频管理 | void onRemoteAudioStateChanged(String uid, int state, int reason,int elapsed) | void onRemoteAudioStateChanged(RemoteStreamKey key, RemoteAudioState state, RemoteAudioStateChangeReason reason) | |
| 参数变化 | 音频管理 | void onFirstLocalAudioFrame(int elapsed) | void onFirstLocalAudioFrame(StreamIndex streamIndex) | |
| 参数变化 | 音频管理 | void onFirstRemoteAudioFrame(String uid, long elapsed) | void onFirstRemoteAudioFrame(RemoteStreamKey remoteStreamKey) | |
| 参数变化 | 流消息 | public void onUserMessageSendResult(long msgid, int error) | public void onUserMessageSendResult(long msgid, int error) | UserMessageSendResult 枚举值名称变更 & 新增枚举值 | |
| 名称和参数均变化 | 房间管理 | public void onLeaveChannel(IRtcEngineEventHandler.RtcStats stats) | public void onLeaveRoom(IRtcEngineEventHandler.RtcRoomStats stats) | |
| 名称和参数均变化 | 性能回退 | public void onRemoteStreamSwitch(RemoteStreamSwitch event) | public void onSimulcastSubscribeFallback(RemoteStreamSwitch event) | FallbackOrRecoverReason 枚举值名称变更 |
| 名称和参数均变化 | 音频管理 | void onAudioRouteChanged(int routing) | void onAudioPlaybackDeviceChanged(AudioPlaybackDevice device) | |
| 名称和参数均变化 | CDN 推流 | public void onStreamPublished(String url, int error) | public void onLiveTranscodingResult(String url, int error) | TranscodingError 错误码名称变更 |
| 合并 | 房间管理 | public void onJoinChannelSuccess(String channel, String uid, int elapsed)public void onRejoinChannelSuccess(String channel, String uid, int elapsed) | public void onJoinRoomResult(String roomId, String uid, int errorCode, int joinType, int elapsed) | 旧版回调合并为onJoinRoomResult |
| 合并 | 视频管理 | void onFirstRemoteVideoFrame(String uid, int width, int height, int elapsed)void onFirstRemoteScreenFrame(String uid, int width, int height, int elapsed) | void onFirstRemoteVideoFrameRendered(RemoteStreamKey remoteStreamKey, VideoFrameInfo frameInfo) | 旧版回调合并为 onFirstRemoteVideoFrameRendered |
| 合并 | 视频管理 | void OnFirstLocalVideoFrame(int width, int height, int elapsed)void OnFirstLocalScreenFrame(String uid, int width, int height, int elapsed) | void OnFirstLocalVideoFrameCaptured(Streamindex stream_index, VideoFrameInfo frame_info) | 旧版回调合并为 OnFirstLocalVideoFrameCaptured |
| 合并 | 数据统计 | void onLocalAudioStats(LocalAudioStats stats)void onLocalVideoStats(IRtcEngineEventHandler.LocalVideoStats stats)void onNetworkQuality(String uid, int txQuality, int rxQuality) | void onLocalStreamStats(LocalStreamStats stats) | 多个旧版回调合并为 onLocalStreamStats 中的多个状态 |
| 合并 | 数据统计 | void onRemoteVideoStats(IRtcEngineEventHandler.RemoteVideoStats stats)void onRemoteAudioStats(IRtcEngineEventHandler.RemoteAudioStats stats)void onNetworkQuality(String uid, int txQuality, int rxQuality) | void onRemoteStreamStats(RemoteStreamStats stats) | 多个旧版回调合并为 onRemoteStreamStats 中的多个状态 |
| 拆分 | 视频管理 | void onUserEnableLocalVideo(String uid, boolean enabled)int enableLocalVideo(boolean enabled) | void onUserStartVideoCapture(String uid)void onUserStopVideoCapture(String uid) | 旧版回调拆分为 onUserStartVideoCapture 和 onUserStopVideoCapture |
| 拆分 | 视频管理 | void onVideoSizeChanged(String uid, int width, int height, int rotation) | void onLocalVideoSizeChanged(StreamIndex streamIndex, VideoFrameInfo frameInfo)void onRemoteVideoSizeChanged(RemoteStreamKey remoteStreamKey, VideoFrameInfo frameInfo) int setRemoteVideoCanvas(String user_id, StreamIndex index, VideoCanvas canvas) | 旧版回调拆分为 onLocalVideoSizeChanged 和 onRemoteVideoSizeChanged |
| 删除 | 房间管理 | public void onLoginCompletion(int errorCode, ByteStream[] listStream) | / | |
| 删除 | 数据统计 | void onAudioQuality(String uid, int quality, short delay, short lost) | / |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举值增删 | UserMessageSendResult | 新增了枚举值:USER_MESSAGE_SEND_RESULT_INIT |
| 枚举值增删 | RemoteVideoStats | 删除了枚举值:uid,此变量请参考RemoteStreamStats中的uid |
| 枚举值增删 | RemoteAudioStats | 删除了枚举值:uid,此变量请参考RemoteStreamStats中的uid |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 合并 | 引擎管理 | void onConnectionLost()void onConnectionInterrupted() | void onConnectionStateChanged(int state, int reason) | 多个旧版回调合并为 onConnectionStateChanged 中的多个状态 |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 房间管理 | void enableAutoSubscribe(boolean enable) | void enableAutoSubscribe(SubscribeMode audioMode, SubscribeMode videoMode) |
以下表格中的类型发生了变化,你需要在工程文件中找到该类型,并根据变化调整相关处理逻辑:
| 变更详情 | 数据类型 | 备注 |
|---|---|---|
| 枚举值增删 | CLIENT_ROLE_TYPE | 删除了枚举值:CLIENT_ROLE_AUDIENCE,建议使用 CLIENT_ROLE_SILENT_AUDIENCE 代替。 |
以下表格中的错误码发生了变化,你需要进行相应的处理:
| 变更详情 | 错误码 | 备注 |
|---|---|---|
| 枚举值增删 | RtcErrorCode | 新增了枚举值:BRERR_OVER_STREAM_PUBLISH_LIMITBRERR_OVER_SCREEN_PUBLISH_LIMITBRERR_OVER_VIDEO_PUBLISH_LIMIT |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 名称和参数均变化 | 房间管理 | create(Context context, String appId, IRtcEngineEventHandler handler, boolean useOffline, Object eglContext) | createEngine(Context context, String appId, IRtcEngineEventHandler handler, Object eglContext, JSONObject parameters) |
以下表格中的方法发生了变化。你需要在工程文件中找到该方法,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 房间管理 | void unSubscribe(String streamId) | void unSubscribe(String userId, boolean isScreen) | |
| 参数变化 | 房间管理 | void subscribeStream(String streamId, SubscribeConfig info) | void subscribeStream(String userId, SubscribeConfig info) |
以下表格中的回调发生了变化。你需要在工程文件中找到该回调,并进行相关修改:
| 变更详情 | 功能模块 | 变动前方法 | 变动后方法 | 备注 |
|---|---|---|---|---|
| 参数变化 | 房间管理 | void onStreamRemove(ByteStream stream) | void onStreamRemove(ByteStream stream, IRtcEngineEventHandler.RtcStreamRemoveReason reason) |