P2P语音通话

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

功能描述

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

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

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

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

接口说明

发起P2P语音通话

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

接口参数说明:

参数 含义 说明
userId 发送P2P语音通话的目标ID 用户需要在项目中,不需要考虑是否在线
timeout 超时时间 定义的超时时间,单位为秒
代码示例
-(void)requestP2PVoiceWithUserId:(NSNumber * _Nonnull)userId
                         timeout:(int)timeout
                         success:(void(^)(void))successCallback
                            fail:(RTCAnswerFailCallBack)failCallback;

接收请求发出后的反馈

在调用完requestP2PVoiceWithUserId接口发起P2P语音通话请求后,会通过rtcReceiveP2PVoiceEventWithUserId接口,接收到发出的P2P语音通话请求的反馈情况。

接口参数说明:

参数 含义 说明
userId 发送P2P语音通话的目标ID 用户需要在项目中,不需要考虑是否在线
eventId 状态反馈枚举 枚举值:
1-取消p2p语音通话请求(调用cancelP2PVoiceWithCallId接口时产生)
2-对端挂断
3-对端已经接请求
4-对端拒绝请求
5-对端无人接听
代码示例
-(void)rtcReceiveP2PVoiceEventWithUserId:(int64_t)userId
                                 eventId:(int64_t)eventId;

接收P2P语音通话请求

通过rtcReceiveP2PVoiceRequestWithUserId接口,用户可以获取到其他用户发送的P2P语音通话请求,收到后可以调用其它接口进行请求处理。

接口参数说明:

参数 含义 说明
userId P2P语音通话的发起用户ID 同一时间只能接收到一个请求
代码示例
-(void)rtcReceiveP2PVoiceRequestWithUserId:(int64_t)userId;

接受P2P语音通话

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

接口参数说明:

参数 含义 说明
timeout 超时时间 定义的超时时间,单位为秒
代码示例
-(void)acceptP2PVoiceWithTimeout:(int)timeout
                         success:(void(^)(void))successCallback
                            fail:(RTCAnswerFailCallBack)failCallback;

拒绝P2P语音通话

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

接口参数说明:

参数 含义 说明
timeout 超时时间 定义的超时时间,单位为秒
代码示例
-(void)refuseP2PVoiceWithTimeout:(int)timeout
                         success:(void(^)(void))successCallback
                            fail:(RTCAnswerFailCallBack)failCallback;

取消P2P语音通话

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

接口参数说明:

参数 含义 说明
timeout 超时时间 定义的超时时间,单位为秒
代码示例
-(void)cancelP2PVoiceWithTimeout:(int)timeout
                         success:(void(^)(void))successCallback
                            fail:(RTCAnswerFailCallBack)failCallback;

结束P2P语音通话

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

接口参数说明:

参数 含义 说明
timeout 超时时间 定义的超时时间,单位为秒
代码示例
-(void)closeP2PVoiceWithTimeout:(int)timeout
                         success:(void(^)(void))successCallback
                            fail:(RTCAnswerFailCallBack)failCallback;