互联网点对点音视频

1、互联网点对点音视频说明

1.1、实时音频、实时视频和拨打落地电话均通过相同的接口进行调用 
  遵循相同的业务流程。不同的业务通过呼叫接口参数CallType进 
  行区分,VIDEO_CALL视频、VOICE_CALL音频。 
1.2、接口逻辑 
接口调用是采取异步调用的方式。所有的呼叫相关接口的调用结果通过回调接口ECVoipCallBackInterface中的方法onCallEvents来接受服务端返回的各种状态。
 1.3、业务流程    
  •  客户A呼叫客户B发起请求 
  •  云通讯服务端收到A请求并把请求转发给B 
  •  客户B收到请求并应答 
  •  云通讯服务端收到B应答并转发A 
  •  A收到应答,通话建立。 

2、代码示例

音频呼叫

我们假设Tony音频呼叫John,则代码如下: 
  • char **outCallid;
  • outCallid = new char *;
  • MakeCall((const char**)outCallid, EC_VOICE_CALL, "John账号");

视频呼叫 

我们假设Tony视频呼叫John,此时代码和音频呼叫相同,区别是呼叫类型需要传入VIDEO_CALL,并且在呼叫前需要设置本地和对方的视频view,代码如下:
  • SetVideoView( remoteView, localView);
  • char **outCallid;
  • outCallid = new char *;
  • MakeCall((const char**)outCallid, EC_VIDEO_CALL, "John账号");
 假设John侧客户端调起来音频或者视频呼入的界面,界面上有“接受”和“拒接”两个按钮; 
  • John点击“接受”按钮,调用AcceptCall: 
  • AcceptCall ("来电的callid"); 
  • John点击“拒绝”按钮,音视频拒绝的代码是一致的,调用的代码是: 
  • ReleaseCall("来电的callid", 175603);

处理回调事件

Tony在呼叫John的过程中,会有若干状态返回,都在回调onCallEvents中处理,其监听的设置已经在sdk初始化的SetVoIPCallBackFuction中设置过。代码示例如下: 
  • -(void) onCallEvents(const ECVoIPCallMsg * call)
  • {
  •  if( Global::m_pMain )
  •  {
  •  Global::m_pMain->MainCallEventsResult(reason, call);
  •  }}

设置美颜 

Tony和John的通话过程中,想设置美颜功能,则都可以调用如下代码: 
  • SetBeautyFilter (true);

取消设置美颜 

Tony和John的通话过程中,想设置美颜功能,则都可以调用如下代码:
  • SetBeautyFilter (false);

结束通话 

Tony和John的通话过程中,任何一方想结束呼叫,则都可以调用如下代码:
  • ReleaseCall("来电的callid", 0);