Android 更新日志
更新时间: 2024/11/15 15:26:08
本文介绍呼叫组件(NERtcCallKit)Android 端的更新日志和升级说明。
3.0.0 (2024-11-12)
- 支持群组通话功能,具体请参见 群组通话。
- 升级底层兼容的 IM 版本至 V10。
- 修复群组相关问题。
兼容版本
- 适配 NIM SDK 10.5.0 版本。
- 适配 NERtc SDK 5.5.40 版本。
2.5.1 (2024-08-06)
问题修复
修复在某些场景下呼叫铃声异常的问题。
2.4.0 (2024-03-28)
新增特性
文案、铃声支持国际化。
兼容版本
- 适配 NIM SDK 9.14.2 版本。
- 适配 NERtc SDK 5.5.21 版本。
2.3.0 (2024-03-01)
改进优化
统一日志路径(IM 日志默认路径)。
问题修复
修复部分已知问题。
兼容版本
- 适配 NIM SDK 9.14.2 版本。
- 适配 NERtc SDK 5.5.21 版本。
2.2.6 (2024-01-29)
内部优化。
兼容版本
- 适配 NIM SDK 9.14.2 版本。
- 适配 NERtc SDK 5.5.21 版本。
2.2.5 (2024-01-23)
已知问题修复。
兼容版本
- 适配 NIM SDK 9.14.2 版本。
- 适配 NERtc SDK 5.5.21 版本。
2.2.4 (2024-01-02)
新增特性
- 支持角标通知,在呼叫时通过配置
NECallPushConfig.needBadge
参数来设置是否有角标通知。 - 初始化时
NESetupConfig
中不需要再传入currentUserAccId
参数,由内部自动获取。
兼容版本
- 适配 NIM SDK V9.14.0 版本。
- 适配 NERTC SDK V5.5.2 版本。
2.2.2 (2023-12-13)
channelProfile
参数的默认值修改为 LIVE_BROADCASTING
。
2.2.0 (2023-11-07)
新增特性
- UI 组件新增小窗功能,默认不开启,可在初始化时配置
enableFloatingWindow
参数。 - UI 组件新增被呼叫预览功能,默认不开启,可在初始化时配置
enableVideoCalleePreview
参数。 - UI 组件新增虚化(通话中)功能,默认不开启,可在初始化时配置
enableVirtualBlur
参数。
API 变更
UserInfoHelper
接口移除 fetchNicknameByTeam
、loadAvatar
,新增 fetchAvatar
接口。
兼容版本
- 适配 NIM SDK V9.12.0 版本。
- 适配 NERTC SDK V5.5.2 版本。
2.1.2 (2023-08-31)
兼容版本
-
适配 NIM V9.12.0 版本。
-
适配 NERTC SDK V5.4.8 版本。
2.1.0 (2023-08-08)
新增特性
支持在通话中配置 P2PUIConfig
参数,以开启或关闭应用进程保持前台服务的功能。
改进优化
-
UI 组件内部实现替换为呼叫组件 2.0 的 API。
-
调用
accept
接口时,如果对方不在线,结束通话流程。 -
自定义 UI 的方式调整为使用 Fragment 进行自定义。
-
呼叫铃声的实现方式修改为使用 MediaPlayer 实现。
问题修复
修复异常挂断后通话失败的问题。
升级说明
- 含 UI 集成的用户,请参考 升级指南(V2)从 V2.0.0 到 V2.1.0 版本。
- 不含 UI 集成的用户,可以从 V2.0.0 版本直接升级至 V2.1.0 版本。
兼容版本
- 适配 NIM V9.12.0 版本。
- 适配 NERTC SDK V5.4.0 版本。
2.0.0 (2023-05-29)
改进优化
Android、iOS、Web 各端接口和字段对齐,更新后的 API 接口请参见 呼叫组件 V2.0.0 API 参考。
- 集成了呼叫组件 V2.0 版本的用户能和呼叫组件 V1.x 的用户进行通话。
- 请确保代码中全使用 V2.0 版本的接口或全使用 V1.x 版本的接口, V2.0 版本的接口和 V1.x 版本的接口请勿混用。
API 变更
CallKitUIOptions#rtcInitScope
接口,被 CallKitUIOptions#initRtcMode
接口替换,其中 Boolean 类型参数改为 Int 类型参数:
java /** 呼叫组件初始化 rtc sdk 模式 */
public @interface NECallInitRtcMode {
/** 全局初始化 rtc 一次 */
int GLOBAL = 1;
/** 按需初始化,主叫在呼叫时初始化 rtc ,被叫在收到呼叫时初始化 rtc ,通话结束销毁 rtc */
int IN_NEED = 2;
/** 和{@link NECallInitRtcMode#IN_NEED}类似,区别在于被叫接听时才初始化 rtc,其他一致 */
int IN_NEED_DELAY_TO_ACCEPT = 3;
}
升级说明
从 V1.8.2 版本升级到 V2.0.0 版本,不影响您继续使用 V1.8.2 版本的接口。详细的接口变更和升级说明请参见升级指南(V2)。
兼容版本
- 适配 NIM V9.10.0 版本。
- 适配 NERTC SDK V4.6.50 版本。
1.8.2 (2023-02-28)
改进优化
适配 IM UIKit,支持在 IM UIKit V9.4.0 及以上版本中集成呼叫组件。
升级说明
V1.8.1 版本可直接升级至 V1.8.2 版本。
兼容版本
- 适配 NIM V9.8.0 版本。
- 适配 NERTC SDK V4.6.29 版本。
1.8.1 (2022-11-29)
改进优化
优化主叫方视频预览的实现逻辑。
升级说明
V1.8.0 版本可直接升级至 V1.8.1 版本。
兼容版本
- 适配 NIM V9.6.4 版本。
- 适配 NERTC SDK V4.6.29 版本。
1.8.0 (2022-11-01)
新增特性
- 单击本地预览小窗,切换画布
- 支持设置关闭摄像头时的数据采集模式,具体请参见自定义 UI。
- 支持设置主叫在呼叫时是否加入 RTC 房间
API 变更
-
NERTCVideoCall#accept
接口,删除invitedParam
和selfAccId
参数。修改为如下代码:java
void accept(JoinChannelCallBack joinChannelCallBack);
-
NERTCVideoCall#reject
接口,删除inviteParam
参数,修改为如下代码:java
void reject(RequestCallback<Void> callback);
-
CallKitUIOptions
接口中新增joinRtcWhenCall
参数,设置主叫在呼叫时是否加入 RTC 房间。java
// 主叫是否在呼叫时加入rtc房间,默认为false,不提前加入,在被叫接听时加入。如果设置提前加入房间,会带来通话费用的增加,同时提升首帧开画时间 CallKitUIOptions options = new CallKitUIOptions.Builder() .joinRtcWhenCall(false) // true:在呼叫时加入,false:在被叫接听时加入 ...... .build(); // 初始化 CallKitUI.init(getApplicationContext(), options);
API 删除
接口 | 说明 |
---|---|
NERTCVideoCall#setTokenService |
不需要您额外通过 TokenService 请求 RTC 的 Token,呼叫组件内部已实现相关获取流程。 |
CallKitUIOptions#rtcTokenService |
改进优化
- 优化首帧时长。
- Android API 版本(compileSdkVersion)需要满足最低为 31 及以上版本。
升级说明
不可直接升级,从 V1.6.4 版本升级至 V1.8.0 版本时,您需要在代码中对新增和变更的接口进行修改和适配,主要变更如下:
-
引入组件库的地址修改为:
groovy
implementation 'com.netease.yunxin.kit.call:call:1.8.0' // 基础组件包 implementation 'com.netease.yunxin.kit.call:call-ui:1.8.0' // UI 包
-
业务应用不再需要通过
TokenService
获取 RTC Token,呼叫组件内部已实现相关获取流程。
兼容版本
- 适配 NIM V9.6.4 版本。
- 适配 NERTC SDK V4.6.22 版本。
为了避免出现未知错误,NIM 和 NERTC 请使用以上指定的配套版本。
1.6.4 (2022-08-30)
新增特性
- UI 层支持在音频通话中显示或隐藏 音频转视频 按钮开关。实现方法修改如下:
- 去除呼叫组件对自定义消息的影响。
API 变更
UI 层支持在音频通话中显示或隐藏 音频转视频 按钮开关。实现方法修改如下:
-
自定义 activity(例如TestActivity) 继承 P2PCallActivity,示例代码如下:
public class TestActivity extends P2PCallActivity { @NonNull @Override protected P2pUIConfig provideUIConfig() { // true 显示,false 隐藏; return new P2pUIConfig(value); } }
-
在组件初始化处注册此 Activity。
CallKitUIOptions options = new CallKitUIOptions.Builder() .p2pAudioActivity(TestActivity.class) // 音频; .p2pVideoActivity(TestActivity.class) // 视频, 若音频/视频通话页面共用同一个页面则视频也需要注册; ...... .build(); // 初始化 CallKitUI.init(getApplicationContext(), options);
升级说明
V1.6.1 版本可直接升级至 V1.6.4 版本。
兼容版本
- 适配 NIM V9.2.5 版本。
- 适配 NERTC SDK V4.6.12 版本。
1.6.1 (2022-08-22)
新增特性
- 支持音视频通话切换确认。
TokenService#getToken
接口新增channelName
参数。
新增 API
接口名称 | 接口说明 |
---|---|
enableSwitchCallTypeConfirm |
音视频切换确认,默认不开启确认。 |
onCallTypeChange |
音视频切换回调,新增回调中有音视频切换指令类型,如果未开启音视频切换确认配置,可忽略第二个字段。 |
API 变更
接口名称 | 接口说明 |
---|---|
switchCallType |
增加 state 参数,用于获取音视频切换确认的状态。 |
TokenService#getToken |
新增 channelName 参数。 |
升级说明
V1.5.7 版本可直接升级至 V1.6.1 版本。
兼容版本
- 适配 NIM V9.2.5 版本。
- 适配 NERTC SDK V4.6.12 版本。
1.5.7 (2022-07-19)
新增特性
- 支持在初始化时关联呼叫组件
accId
对应的rtcUid
,以便消息抄送时能获取到对应的用户。 - 支持呼叫时绑定该呼叫对应的 RTC 房间名称(
channelName
)。 - 支持呼叫或接听时直接设置
rtcToken
。
改进优化
去除对 blankj
三方库的依赖。
API 变更
-
init
接口中增加currentUserRtcUId
参数,关联呼叫组件accId
对应的rtcUid
,以便消息抄送时能获取到对应的用户。// 初始化时传入自定义 uid 参数 CallKitUIOptions options = new CallKitUIOptions.Builder() .currentUserRtcUId(123L) // 自定义rtc uid 参数 .currentUserAccId("accId") // 用户云信 IM sdk 登录的 accId ...... .build(); // 初始化 CallKitUI.init(getApplicationContext(), options);
-
call
接口中增加channelName
参数,用于绑定 RTC 房间的名称。CallParam param = new CallParam.Builder() .rtcChannelName("channelName")// 自定义呼叫的音视频房间名称 ...... .build(); CallKitUI.startSingleCall(context, param);// 发起呼叫
// 自定义 ui 用户 SingleCallParam param = new SingleCallParam( p2pCalledAccId, // 被叫用户 accId ChannelType.retrieveType(channelType), // 呼叫类型 extJsonStr, // 主叫透传给被叫的透传参数,可无 globalExtraCopy,// 全局抄送只用于服务端解析,可无 rtcChannelName,// 自定义的音视频房间名称 rtcToken //呼叫时用户加入音视频房间的token ); NERTCVideoCall.sharedInstance().call(param,callback )// 发起呼叫
-
accept
接口中增加token
参数,用于呼叫时传入 rtc token。// 对于主叫参考上述 2.支持呼叫时自定义音视频房间名称 // 对于被叫用户:accept 接口增加 token 字段 NERTCVideoCall.sharedInstance().accept(param, // 呼叫参数 token, // 自定义 token 可无 callback) // 结果回调
升级说明
V1.5.5 版本可直接升级至 V1.5.7 版本。
兼容版本
- 适配 NIM V9.2.5 版本。
- 适配 NERTC SDK V4.6.12 版本。
1.5.5 (2022-06-07)
新增特性
- 1 对 1 呼叫时,支持全局服务端抄送参数。
- 支持占线挂断。
新增 API
接口名称 | 接口说明 |
---|---|
call |
开始呼叫。通过 globalExtraCopy 参数,设置呼叫时的全局抄送信息。 |
hangup |
通过 reason 参数控制挂断原因,例如被叫用户可通过 NERTCVideoCall#hangup(null,TerminalCode#TERMINAL_CODE_BUSY,null) 实现占线挂断。 |
升级说明
V1.5.4 版本可直接升级至 V1.5.5 版本。
兼容版本
- 适配 NIM V8.5.5 版本。
- 适配 NERTC SDK V4.2.142 版本。
1.5.4 (2022-05-19)
问题修复
修复 Android 的系统版本较高时,因通知中缺少 FLAG_IMMUTABLE
而导致崩溃。
升级说明
V1.5.3 版本可直接升级至 V1.5.4 版本。
兼容版本
- 适配 NIM V8.5.5 版本。
- 适配 NERTC SDK V4.2.140 版本。
1.5.3 (2022-04-26)
新增特性
当拒接或占线时,支持关闭信令房间,避免服务端收不到对应的关闭房间抄送。
问题修复
修复部分已知问题。
升级说明
V1.5.0 版本可直接升级至 V1.5.3 版本。
兼容版本
- 适配 NIM V8.5.5 版本。
- 适配 NERTC SDK V4.2.124 版本。
1.5.0 (2021-12-23)
问题修复
修复部分已知问题。
升级说明
V1.4.2 版本可直接升级至 V1.5.0 版本。
兼容版本
- 适配 NIM V8.5.5 版本。
- 适配 NERTC SDK V4.2.120 版本。
1.4.2 (2021-11-25)
API 变更
supportAutoJoinWhenCalled
接口的参数默认值修改为 false。
问题修复
修复部分已知问题。
升级说明
从V1.4.0 版本升级至 V1.4.2 版本时,请注意如下变更:
supportAutoJoinWhenCalled
接口的参数默认值由 true 调整为 false。该变更影响通话接通前,切换音视频通话类型。
兼容版本
- 适配 NIM V8.5.5 版本。
- 适配 NERTC SDK V4.2.115 版本。
1.4.0 (2021-09-28)
新增特性
- 添加音频转视频功能。
- 增加通话中根据 accId 获取 rtcUid 或根据 rtcUid 获取 accId。
- 支持呼叫通话前支持切换通话类型。
- 修改组件展示 demo,从即时通讯 Demo 更换为 1 对 1 demo。
- 适配 SDK 版本更新。
新增 API
NERTCVideoCall#getAccIdByRtcUid
:根据 RtcUid 获取对应的 AccId。NERTCVideoCall#getRtcUidByAccId
:根据 AccId 获取对应的 RtcUid。
API 更新
NERTCVideoCall#switchCallType
支持ChannelType#VIDEO
参数从音频切换为视频通话。CallKitNotificationConfig
构造函数变更,新增channelId
参数。
升级说明
V1.3.3 版本可直接升级至 V1.4.0 版本。
兼容版本
- 适配 NIM V8.5.5 版本。
- 适配 NERTC SDK V4.2.105 版本。
1.3.3 (2021-08-26)
新增特性
- 支持自定义呼叫推送配置。
- 支持 UI 组件,用户可通过引入呼叫 UI 组件实现接入。
- 支持设置失败话单发送开关。
- 支持自定义 CallService 允许用户自己实现呼叫⻚面启动。
- 支持 CallExtension 用于 rtc 相关扩展(如修改 rtc 初始化流程)。
新增 API
-
NERTCVideoCall#setCallExtension
:RTC 功能扩展。 -
VideoCallOptions#enableOrder
:本地话单开关。
升级说明
若您从 V1.3.1 升级至 V1.3.3,请注意:
- 将
implementation 'com.netease.yunxin.kit:call:1.3.3'
替换为implementation 'com.netease.yunxin.kit:call-adapter:1.3.3'
; - 将
CallParams
替换为SelfParams
; - 将
NERTCVideoCall
替换为NERTCVideoCallWrapper
; - 将
VideoCallOptions
替换为VideoCallOptionsWrapper
; VideoCallOptions
删除uiService
字段,通过VideoCallOptionsWrapper
设置此字段;VideoCallOptions
中新增enableOrder
字段 用于控制本地不带时长话单的发送,时长话单发送开关需到云信后台设置;VideoCallOptions
中新增logRootPath
字段用于配置组件日志路径,若用户设置IM Sdk
路径则最好将此路径同样设置给组件;NERTCVideoCall
新增接口setCallExtension
用于设置 rtc 相关配置以及调用;NERTCVideoCall
新增接口setPushConfigProvider
用于设置呼叫推送配置。
兼容版本
- 适配 NIM V8.5.5 版本。
- 适配 NERTC SDK V4.0.9 版本。
1.3.1 (2021-07-16)
问题修复
修复外部设置视频参数无效问题。
兼容版本
- 适配 NIM V8.4.6 版本。
- 适配 NERTC SDK V4.0.7 版本。
1.3.0 (2021-06-24)
新增特性
- 添加回调
onJoinChannel
接口方法,用于告知channelName
,channelId
,uid
,accid
关系映射。 - 移动端添加
muteLocalVideo
接口以及onVideoMute
回调。 - 移动端添加
onAudioMute
回调。 call
、groupCall
、groupInvite
接口支持自定义扩展参数,被叫方在onInvited
回调中解析对应参数。
新增 API
NERTCCallingDelegate#onJoinChannel
用于本地用户映射 AccId
、RtcUid
、rtcChannelName
、rtcChannelId
。
升级说明
若您从 V1.2.0 升级至 V1.3.0,请参考以下说明:
-
NERTCVideoCall
添加视频采集控制接口:java
/** * 开启/关闭视频采集 * @param isMute true:视频采集关闭 false:视频采集打开 */ public abstract void muteLocalVideo(boolean isMute);
接口调用会触发
NERTCCallingDelegate.onVideoMuted()
回调; -
NERTCCallingDelegate
添加音频采集控制回调接口,通过NERtcVideoCall.muteLocalAudio
方法调用触发:```java
/**
- 远端用户是否开启音频流采集
- @param userId 远端用户id
- @param isMuted true:关闭,false:开启
*/
void onAudioMuted(String userId, boolean isMuted);
-
NERTCCallingDelegate
添加onJoinChannel
接口,此接口当用户加入音视频房间时触发此回调,用户可通过此回调获取用户 IM 的账号 Id在此次通话中的 uid 以及音视频房间的房间 Id 以及名称。java
/** * 当前用户加入音视频的回调 * * @param accId 用户 id * @param uid 用户用于加入 rtc 房间的 uid * @param channelName 用户加入 rtc 房间的通道名称 * @param rtcChannelId rtc 房间通道 id */ void onJoinChannel(String accId, long uid, String channelName, long rtcChannelId);
-
呼叫接口变更
NERtcVideoCall.call
、NERtcVideoCall.groupCall
、NERtcVideoCall.grouInvite
均增加extraInfo
参数,此参数用户传递自定义参数,在被叫方收到邀请通知时可解析出。java
private NERTCCallingDelegate callingDelegate = new NERTCCallingDelegate() { @Override public void onInvited(InvitedInfo invitedInfo) { // 被叫用户通过 invitedInfo.attachment 获取对应自定义参数; } //...... }
兼容版本
- 适配 NIM V8.4.6 版本。
- 适配 NERTC SDK V4.0.7 版本。
1.2.1 (2021-06-08)
问题修复
- 修复服务端删除房间/踢出某个成员后,通话没有结束。
- 修复频繁挂断通话场景下低概率导致上一通通话影响下一通通话。
- 修复一对一通话时一方加入 rtc 失败时另外一端可正常进入通话。
兼容版本
- 适配 NIM V8.4.6 版本。
- 适配 NERTC SDK V4.0.7 版本。
1.2.0 (2021-05-14)
新增特性
- 添加多人通话,呼叫发起方可以在通话中途邀请其他用户。
- 1v1 视频呼叫添加本地视频预览。
- 在收到首帧回调时才会刷新 UI。
新增 API
NERTCVideoCall#groupInvite
主叫在多人通话中邀请其他用户。
问题修复
修复已知问题,提供稳定性。
兼容版本
- 适配 NIM V8.3.1 版本。
- 适配 NERTC SDK V4.0.3 版本。
1.1.0 (2021-04-25)
新增特性
首屏接通流程优化,提升接通速度。
问题修复
- 修复呼叫状态下,主叫突然断网,被叫方接受,主叫方网络恢复后没有收到对方 “接受” 的问题。
- 修复 IM 被踢后音视频房间未退出问题。
兼容版本
- 适配 NIM V8.3.1 版本。
- 适配 NERTC SDK V4.0.3 版本。