1、音频、视频开发说明

✾ 说明

(1)实时音频、实时视频均通过相同的接口进行调用

遵循相同的业务流程。不同的业务通过呼叫接口参数callType进行区分,1视频、0音频。

(2)接口逻辑

接口调用是采取异步调用的方式。所有的呼叫相关接口的调用结果通过回调接口RL_YTX.onCallMsgListener来接受服务端返回的各种状态。

(3)业务流程

a、客户A呼叫客户B发起请求

b、云通讯服务端收到A请求并把请求转发给B

c、客户B收到请求并应答

d、云通讯服务端收到B应答并转发A

e、A收到应答,通话建立。

✾ 设置音视频展示标签 — 假设Tony想要和John 进行视频通话,要考虑如何在本地展示对方影像和自己影像。那么就需要设置页面Video句柄。(发起视频呼叫和接受视频呼叫之前需要先调用此方法),示例代码如下:

//view 是展示对方的影像或声音
// localView是展示自己的影像或声音
//这里的 view 和 localView 根据实际需要选择video标签或者audio标签,要求是dom元素
RL_YTX.setCallView(view,localView);

                    

✾ 发送音视频请求 — 假设Tony对John发起呼叫,示例代码如下:

var makeCallBuilder= new RL_YTX.MakeCallBuilder();
makeCallBuilder.setCalled(‘John的号码’);
makeCallBuilder.setCallType(1);//呼叫的类型 0 音频 1视频
RL_YTX.setCallView(view,localView); //呼叫类型1的时候这么传
// RL_YTX.setCallView(view,null);//呼叫类型是0的时候这么传
RL_YTX.makeCall(makeCallBuilder,
function(){
    //呼叫成功
}, function callback(obj){
obj.code //错误码
})

                    

✾ 接收音视频请求 — John接收Tony的呼叫请求,示例代码如下:

var voipAcceptBuilder = new RL_YTX.AcceptCallBuilder();
voipAcceptBuilder.setCallId(callId);//请求的callId,
voipAcceptBuilder.setCaller(caller);//请求的主叫号码,即Tony的号码
//通过RL_YTX.onCallMsgListener(callback)中的callback.callId属性获得callId
//通过RL_YTX.onCallMsgListener(callback)中的callback.caller属性获得caller
RL_YTX.accetpCall(voipAcceptBuilder,
function(){

}, function callback(obj){
alert(obj. code) //错误码
})

                    

✾ 拒绝音视频请求 — John 拒绝Tony的请求,示例代码如下:

var VoipRejectBuilder = new RL_YTX.RejectCallBuilder();
VoipRejectBuilder.setCallId(callId);//请求的callId
VoipRejectBuilder.setCaller(caller);//请求的主叫号码,即Tony的号码

//通过RL_YTX.onCallMsgListener(callback)中的callback.callId属性获得callId
//通过RL_YTX.onCallMsgListener(callback)中的callback.caller属性获得caller
//通过RL_YTX.onCallMsgListener(callback)中的callback.reason属性获得reason
RL_YTX.rejectCall(VoipRejectBuilder,function(){

}, function(obj){
alert(obj.code)
})

                    

✾ 取消音视频 — Tony 呼叫John后需要取消呼叫,示例代码如下:

var VoipReleaseBuilder = new RL_YTX.ReleaseCallBuilder();
VoipReleaseBuilder.setCallId(callId);//请求的callId
VoipReleaseBuilder.setCaller(caller);//请求的主叫号码,即Tony的号码
VoipReleaseBuilder.setCalled(called);// 请求的被叫号码,即John的号码
//通过RL_YTX.onCallMsgListener(callback)中的callback.callId属性获得callId
//通过RL_YTX.onCallMsgListener(callback)中的callback.caller属性获得called
//通过RL_YTX.onCallMsgListener(callback)中的callback.called属性获得caller
RL_YTX.releaseCall(VoipReleaseBuilder,function(){

}, function(obj){
alert(obj.code)
})

                    

✾ H5设置编码 — 在调用音频/视频录制之前调用。示例代码如下:

RL_YTX.setRecordVideo();
                    

✾ 音视频消息通知 — 客户端监听sdk的呼叫事件,根据obj.state区分调用哪些回调参数并进行相应的页面逻辑处理。(在登录成功的方法里面设置)
示例代码如下:

RL_YTX.onCallMsgListener(function(obj){
     obj.callId;//唯一消息标识
obj.caller;//主叫号码
obj.called; //被叫无值
obj.callType;//0 音频 1 视频
obj.state;
	//1 对方振铃(被叫的振铃消息) 2 呼叫中(主叫呼叫发送成功返回该值) 3 呼叫建立(被叫接收后主叫监听到该值)
	//4 呼叫失败(对主叫;对方拒绝或者忙) 5 结束通话(主叫取消成功和主、被叫挂机成功后得到该值) 
	//6 呼叫到达(被叫监听到呼叫请求时获得该值)
	//7 媒体已正式建立连接(被叫获取该值)
obj.code;// 200操作成功,非200代表因本地原因,导致无法接受音视频邀请(例如不支持音视频等),具体原因请参照错误码
}
                    

文档更新时间:2017年12月12日