P2P语音通话

本文主要介绍 云上曲率RTC SDK的提供的P2P语音通话功能。

功能描述

云上曲率RTC SDK为开发者提供基础的通话功能,包括如下内容:

  • 发送P2P语音通话请求,接收P2P语音通话请求
  • P2P语音指令控制

开发者可以通过调用SDK中提供的对应接口来实现P2P语音通话的功能。

注意:实时语音数据传输过程和内容无需开发者关注,开发者仅调用接口来完成P2P语音通话业务流程即可。

接口说明

发起P2P语音通话

通过requestP2PRTC接口,用户可以对其他用户发起P2P语音通话请求。

接口参数说明:

参数 含义 说明
type 通话类型 包括语音通话与视频通话
toUid 目标ID 用户需要在项目中,不需要考虑是否在线
view 己端预览视图 音视频通话时使用
代码示例
public void requestP2PRTC(P2PRTCType type , long toUid, SurfaceView view, IRTMEmptyCallback callback)

接收P2P语音通话请求

通过IRTCPushProcessor类中的pushRequestP2PRTC接口,获取到其他用户的P2P语音通话请求。

接口参数说明:

参数 含义 说明
uid P2P语音通话的发起用户ID 同一时间只能接收到一个请求
type 通话类型 包括语音通话与视频通话
代码示例
public interface IRTCPushProcessor {
    default void pushRequestP2PRTC(long uid, P2PRTCType type){}
}

接收请求发出后的反馈

在调用完requestP2PRTC接口发起P2P语音通话请求后,会通过IRTCPushProcessor类中的pushP2PRTCEvent接口`,接收到发出的P2P语音通话请求的反馈情况。

接口参数说明:

参数 含义 说明
uid 发送P2P语音通话的目标ID 用户需要在项目中,不需要考虑是否在线
type 通话类型 包括语音通话与视频通话
type 状态反馈枚举 枚举值:
1-取消p2p语音通话请求(调用cancelP2PRTC接口时产生)
2-对端挂断
3-对端接受请求
4-对端拒绝请求
5-对端无人接听
代码示例
public interface IRTCPushProcessor {
    default SurfaceView pushP2PRTCEvent(long uid, P2PRTCType type, P2PRTCEvent event){return null;}
  }

接受P2P语音通话

通过acceptP2PRTC接口,用户可以接受其他用户发起的P2P语音通话请求。接受后,双方正式建立P2P语音通路,进行实时语音通话。

接口参数说明:

参数 含义 说明
preview 己端预览视图 音视频通话时使用
bindview 对端试图 音视频通话时使用
代码示例
public void acceptP2PRTC(SurfaceView preview, SurfaceView bindview, IRTMEmptyCallback callback)

拒绝P2P语音通话

通过refuseP2PRTC接口,用户可以拒绝其他用户发起的P2P语音通话求。拒绝后,此次请求结束。

代码示例
public void refuseP2PRTC(IRTMEmptyCallback callback)

取消P2P语音通话

用户在发起P2P语音通话请求过程时,若对端用户还未接受请求,通过cancelP2PRTC接口,用户可以主动取消此次P2P语音通话请求。

代码示例
public void cancelP2PRTC(IRTMEmptyCallback callback)

结束P2P语音通话

通过closeP2PRTC接口,正在进行P2P语音通话的双方均可以结束通话。

代码示例
public void closeP2PRTC(IRTMEmptyCallback callback)