升级指南(V2)
更新时间: 2023/08/08 09:50:04
本文介绍呼叫组件 Android 端从 V1.8.2 版本升级至 V2 版本的说明和注意事项。
V2.1.0
呼叫组件 V2.1.0 主要涉及组件 UI 接口及参数变更,具体如下:
- CallKitUIOptions
功能 |
接口 | 变更说明 |
---|---|---|
设置呼叫notification的内容配置 | notificationConfigFetcher |
接口回调参数由 InvitedInfo 变更为NEInviteInfo |
设置呼叫对应信令推送配置 | pushConfigProvider |
已经删除,通过发起呼叫(NECallEngine.sharedInstance().call )时,设置 NECallParam.pushConfig 参数来实现,类型为 NECallPushConfig |
RTC SDK 初始化模式 | rtcInitScope |
CallKitUIOptions.initRtcMode 配置,详细见NECallInitRtcMode |
设置组件日志路径 | logRootPath |
已经删除,参考常见问题修改为 XkiInitOptions 方式完成日志路径设置 |
- CallParam
功能 |
接口 | 变更说明 |
---|---|---|
信令推送配置 | pushConfig |
新增,用于设置呼叫的信令推送配置 |
通话类型(音频/视频) | channelType |
替换为callType 字段,类型为 int ,详细见 NECallType |
被叫用户 accId | p2pCalledAccId |
替换为 calledAccId 字段 |
通话的所有用户accid列表 | totalAccIdList |
已经删除 |
创建P2P呼叫参数 | createSingleCallParam |
已经删除,请通过 CallParam.Builder 来构建呼叫参数 |
创建老版本群呼参数(无用) | createGroupCallParam |
已经删除 |
群组id(无用) | groupId |
已经删除 |
- CommonCallActivity
功能 |
接口 | 变更说明 |
---|---|---|
呼叫组件实例 | videoCall |
替换为 callEngine |
切换通话类型 | doSwitchCallType |
接口参数变更 |
发起呼叫 | doCall |
|
接听 | doAccept |
|
终止通话 | doHangup |
|
取消呼叫 | doCancel |
替换为 doHangup 接口 |
拒绝接听呼叫 | doReject |
|
发起群呼 | doGroupCall |
已经删除,功能移除 |
群呼通话中途邀请 | doGroupInvite |
|
群呼中离开 | doLeave |
|
摄像头状态变更回调 | onVideoDeviceStageChange |
|
设置通话中回调监听 | provideRtcDelegate |
已经删除,通过继承CommonCallActivity 覆写对应回调参数 |
本端加入rtc成功回调 | onJoinChannel |
已经删除,若有需要参考上文实现 |
配置通话时间监听 | configTimeTick |
新增,设置通话时间监听,需要在使用后设置为 null 避免 |
通话建立回调 | onCallConnected |
新增,用于替换 provideRtcDelegate 接口设置相关回调 |
通话切换回调 | onCallTypeChange |
|
通话结束回调 | onCallEnd |
|
远端用户开启或关闭了摄像头回调 | onVideoAvailable |
|
远端用户是否开启视频流采集回调 | onVideoMuted |
|
远端用户是否开启音频流采集回调 | onAudioMuted |
-
P2PCallActivity
使用
P2PCallFragmentActivity
替换。
V2.0.0
- V2.0 版本既包括 V2.0 新版本的接口,也包括原 V1.x 版本的接口(兼容 V1.X 版本)。
- 请确保代码中全使用 V2.0 版本的接口或全使用 V1.x 版本的接口, V2.0 版本的接口和 V1.x 版本的接口不要混用。
从 V1.8.2 升级至 V2 版本,涉及如下接口方法和接口参数变更,您需要结合实际业务场景更新相关的 App 代码。
请修改对应的类名,替换对应的接口名称,并根据 API 参考中的参数差异,修改相应的实现。
API 变更
- 接口变更
V1 的 NERTCVideoCall 类变更为 V2 的 NECallEngine 类,详细接口变更如下表所示。
- 回调变更
V1 的 NERTCCallingDelegate 类变更为 V2 的 NECallEngineDelegate 类,详细回调变更如下表所示。
功能 |
V1 回调 | V2 回调 | 变更说明 |
---|---|---|---|
收到呼叫邀请 | onInvited |
NECallEngineDelegate.onReceiveInvited |
接口名称和参数变更。 参数由 InvitedInfo 变更为 NEInviteInfo |
用户加入通话 | onUserEnter |
NECallEngineDelegate.onCallConnected |
接口名称和参数变更。 参数由 String 变更为 NECallInfo |
通话结束回调 | onCallEnd |
NECallEngineDelegate.onCallEnd |
接口名称和参数变更。 参数由 String 变更为 NECallEndInfo ,具体挂断原因通过参数的NECallEndInfo.reasonCode 来区分,具体见 NEHangupReasonCode |
用户离开时回调 | onUserLeave |
||
用户断开连接回调 | onUserDisconnect |
||
被叫拒绝呼叫邀请回调 | onRejectByUserId |
||
主叫取消呼叫回调 | onCancelByUserId |
||
被叫用户忙占线回调 | onUserBusy |
||
接听超时回调 | timeOut |
||
本端用户通话中rtc异常断开回调 | onDisconnect |
||
通话存在错误终止通话时回调 | onError |
||
切换通话类型时回调 | onCallTypeChange |
NECallEngineDelegate.onCallTypeChange |
接口名称和接口参数变更。type 和 state 参数变更为 NECallTypeChangeInfo 对象。 |
远端用户开启或关闭了摄像头回调 | onCameraAvailable |
NECallEngineDelegate.onVideoAvailable |
接口名称和接口参数变更。 参数名称由 isVideoAvailable 变更为available 。 |
远端用户是否开启视频流采集回调 | onVideoMuted |
NECallEngineDelegate.onVideoMuted |
接口名称和接口参数变更。 参数名称由 isMute 变更为mute 。 |
远端用户是否开启音频流采集回调 | onAudioMuted |
NECallEngineDelegate.onAudioMuted |
接口删除
功能 |
接口 | 变更说明 |
---|---|---|
通过呼叫组件使用 RTC SDK的接口 | setCallExtension |
V2 版本通过调用NECallEngine.sharedInstance().setup 初始化时,通过NESetupConfig.rtcCallExtension 字段来实现,类型为 CallExtension ,实际可以继承 NERtcCallExtension 来实现扩展。 |
设置被呼叫时自动加入信令通道 | setEnableAutoJoinWhenCalled |
V2 版本通过调用 NECallEngine.sharedInstance().setup 初始化时,通过NESetupConfig.enableAutoJoinSignalChannel 字段来实现。 |
静音指定用户 | setAudioMute |
请替换为 NERtcEx.adjustUserPlaybackSignalVolume 实现 |
设置呼叫对应信令推送配置 | setPushConfigProvider |
设置发起呼叫的推送配置,通过调用NECallEngine.sharedInstance().call 发起呼叫,呼叫中的参数NECallParam.pushConfig 字段来实现,类型为 NECallPushConfig |
远端用户开启或关闭了麦克风回调 | onAudioAvailable |
已经删除,若有需要通过下文代码实现 |
本端加入rtc成功回调 | onJoinChannel |
|
通话网络质量回调 | onUserNetworkQuality |
|
收到对端的视频首帧回调 | onFirstVideoFrameDecoded |
示例代码
-
onJoinChannel 接口替换
V1 版本
onJoinChannel
接口,变更后的 V2 版本的示例代码如下:java
NERtcCallbackProxyMgr.getInstance().addCallback(new NERtcCallbackExTemp(){ @Override public void onJoinChannel(int result, long rtcChannelId, long time, long rtcUid) { } });
-
onAudioAvailable 接口替换
V1 版本
onAudioAvailable
接口,变更后的 V2 版本的示例代码如下:java
NERtcCallbackProxyMgr.getInstance().addCallback(new NERtcCallbackExTemp(){ @Override public void onUserAudioStart(long uid) { } @Override public void onUserAudioStop(long uid) { } });
-
onFirstVideoFrameDecoded 接口替换
V1 版本
onFirstVideoFrameDecoded
接口,变更后的 V2 版本的示例代码如下:java
NERtcCallbackProxyMgr.getInstance().addCallback(new NERtcCallbackExTemp(){ @Override public void onFirstVideoFrameDecoded(NERtcVideoStreamType streamType, long userID, int width, int height) { } });
-
onUserNetworkQuality 接口替换
V1 版本
onUserNetworkQuality
接口,变更后的 V2 版本的示例代码如下:java
NERtcStatsObserverProxyMgr.getInstance().addNetworkObserver(new NERtcNetworkObserver(){ @Override public void onNetworkQuality(NERtcNetworkQualityInfo[] neRtcNetworkQualityInfos) { } });
此文档是否对你有帮助?