升级指南(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 接口 V2 接口 变更说明
组件初始化 setupAppKey NECallEngine.sharedInstance().setup 接口名称和参数变更。
老版本参数合并在NESetupConfig 对象中。
组件销毁 destroySharedInstance NECallEngine.sharedInstance().destroy 接口名称变更。
呼叫 call NECallEngine.sharedInstance().call 接口参数变更。
呼叫的参数修改为通过 NECallParam 设置,可通过 NECallParam.Builder 类来构建,回调返回成功信息变更为 NECallInfo 对象
接听 accept NECallEngine.sharedInstance().accept 接口参数变更。
回调返回成功信息变更为 NECallInfo 对象
挂断 hangup NECallEngine.sharedInstance().hangup 接口参数变更。
channelIdreason 等参数修改为通过 NEHangupParam 设置。
主叫取消呼叫 cancel 接口名称和参数变更。
被叫拒绝呼叫 reject 接口名称和参数变更。
切换通话类型 switchCallType NECallEngine.sharedInstance().switchCallType 接口参数变更。
参数变更为NESwitchParam对象
设置呼叫接通超时时间 setTimeout NECallEngine.sharedInstance().setTimeout 接口参数变更。
参数名称由 timeout 变更为millisecond
设置本地预览画布 setupLocalView NECallEngine.sharedInstance().setupLocalView 所属类变更。
设置对端画布 setupRemoteView NECallEngine.sharedInstance().setupRemoteView 接口参数变更。
新接口删除了 userId 参数。
不关闭摄像头但不进行视频采集 muteLocalVideo NECallEngine.sharedInstance().muteLocalVideo 接口参数变更。
参数名称由 isMute 变更为mute
不关闭录音设备但不进行音频采集 muteLocalAudio NECallEngine.sharedInstance().muteLocalAudio
设置话单控制 setCallOrderListener NECallEngine.sharedInstance().setCallRecordProvider 接口名称和参数变更。
设置对象由CallOrderListener 变更为 NERecordProvider
切换音视频确认配置 enableSwitchCallTypeConfirm NECallEngine.sharedInstance().setCallConfig 接口名称和参数变更。
参数由 audio2Videovideo2Audio 变更为NECallConfig.enableSwitchAudioConfirm
增加通话回调监听 addDelegate NECallEngine.sharedInstance().addCallDelegate 接口名称和参数变更。
参数对象由 NERTCCallingDelegate变更为 NECallEngineDelegate
移除通话回调监听 removeDelegate NECallEngine.sharedInstance().removeCallDelegate
获取通话状态 getCurrentState NECallEngine.sharedInstance().getCallInfo().callStatus 接口名称和参数变更。
通过 rtcUid 获取对应的 accId getAccIdByRtcUid NECallEngine.sharedInstance().getCallInfo().getAccIdByUid 接口名称变更。
通过 accId 获取对应的 rtcUid getRtcUidByAccId NECallEngine.sharedInstance().getCallInfo().getUidByAccId
切换摄像头前置/后置 switchCamera NECallEngine.sharedInstance().switchCamera 所属类变更。
启动摄像头进行视频采集 enableLocalVideo NECallEngine.sharedInstance().enableLocalVideo 所属类变更。
  • 回调变更

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 接口名称和接口参数变更。
typestate 参数变更为 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 版本的示例代码如下:

    javaNERtcCallbackProxyMgr.getInstance().addCallback(new NERtcCallbackExTemp(){
      @Override
      public void onJoinChannel(int result, long rtcChannelId, long time, long rtcUid) {
      }
    });
    
  • onAudioAvailable 接口替换

    V1 版本 onAudioAvailable 接口,变更后的 V2 版本的示例代码如下:

    javaNERtcCallbackProxyMgr.getInstance().addCallback(new NERtcCallbackExTemp(){
      @Override
      public void onUserAudioStart(long uid) {
      }
      @Override
      public void onUserAudioStop(long uid) {
      }
    });
    
  • onFirstVideoFrameDecoded 接口替换

    V1 版本 onFirstVideoFrameDecoded 接口,变更后的 V2 版本的示例代码如下:

    javaNERtcCallbackProxyMgr.getInstance().addCallback(new NERtcCallbackExTemp(){
      @Override
      public void onFirstVideoFrameDecoded(NERtcVideoStreamType streamType, long userID, int width, int height) {
      }
    });
    
  • onUserNetworkQuality 接口替换

    V1 版本 onUserNetworkQuality 接口,变更后的 V2 版本的示例代码如下:

    javaNERtcStatsObserverProxyMgr.getInstance().addNetworkObserver(new NERtcNetworkObserver(){
      @Override
      public void onNetworkQuality(NERtcNetworkQualityInfo[] neRtcNetworkQualityInfos) {
      }
    });
    
此文档是否对你有帮助?
有帮助
去反馈
  • V2.1.0
  • V2.0.0
  • API 变更
  • 接口删除
  • 示例代码