? 說(shuō)明
(1)實(shí)時(shí)音頻、實(shí)時(shí)視頻均通過(guò)相同的接口進(jìn)行調(diào)用
遵循相同的業(yè)務(wù)流程。不同的業(yè)務(wù)通過(guò)呼叫接口參數(shù)callType進(jìn)行區(qū)分,1視頻、0音頻。
(2)接口邏輯
接口調(diào)用是采取異步調(diào)用的方式。所有的呼叫相關(guān)接口的調(diào)用結(jié)果通過(guò)回調(diào)接口RL_YTX.onCallMsgListener來(lái)接受服務(wù)端返回的各種狀態(tài)。
(3)業(yè)務(wù)流程
a、客戶A呼叫客戶B發(fā)起請(qǐng)求
b、云通訊服務(wù)端收到A請(qǐng)求并把請(qǐng)求轉(zhuǎn)發(fā)給B
c、客戶B收到請(qǐng)求并應(yīng)答
d、云通訊服務(wù)端收到B應(yīng)答并轉(zhuǎn)發(fā)A
e、A收到應(yīng)答,通話建立。
//view 是展示對(duì)方的影像或聲音 // localView是展示自己的影像或聲音 //這里的 view 和 localView 根據(jù)實(shí)際需要選擇video標(biāo)簽或者audio標(biāo)簽,要求是dom元素 RL_YTX.setCallView(view,localView);
var makeCallBuilder= new RL_YTX.MakeCallBuilder(); makeCallBuilder.setCalled(‘John的號(hào)碼’); makeCallBuilder.setCallType(1);//呼叫的類型 0 音頻 1視頻 RL_YTX.setCallView(view,localView); //呼叫類型1的時(shí)候這么傳 // RL_YTX.setCallView(view,null);//呼叫類型是0的時(shí)候這么傳 RL_YTX.makeCall(makeCallBuilder, function(){ //呼叫成功 }, function callback(obj){ obj.code //錯(cuò)誤碼 })
var voipAcceptBuilder = new RL_YTX.AcceptCallBuilder(); voipAcceptBuilder.setCallId(callId);//請(qǐng)求的callId, voipAcceptBuilder.setCaller(caller);//請(qǐng)求的主叫號(hào)碼,即Tony的號(hào)碼 //通過(guò)RL_YTX.onCallMsgListener(callback)中的callback.callId屬性獲得callId //通過(guò)RL_YTX.onCallMsgListener(callback)中的callback.caller屬性獲得caller RL_YTX.accetpCall(voipAcceptBuilder, function(){ }, function callback(obj){ alert(obj. code) //錯(cuò)誤碼 })
var VoipRejectBuilder = new RL_YTX.RejectCallBuilder(); VoipRejectBuilder.setCallId(callId);//請(qǐng)求的callId VoipRejectBuilder.setCaller(caller);//請(qǐng)求的主叫號(hào)碼,即Tony的號(hào)碼 //通過(guò)RL_YTX.onCallMsgListener(callback)中的callback.callId屬性獲得callId //通過(guò)RL_YTX.onCallMsgListener(callback)中的callback.caller屬性獲得caller //通過(guò)RL_YTX.onCallMsgListener(callback)中的callback.reason屬性獲得reason RL_YTX.rejectCall(VoipRejectBuilder,function(){ }, function(obj){ alert(obj.code) })
var VoipReleaseBuilder = new RL_YTX.ReleaseCallBuilder(); VoipReleaseBuilder.setCallId(callId);//請(qǐng)求的callId VoipReleaseBuilder.setCaller(caller);//請(qǐng)求的主叫號(hào)碼,即Tony的號(hào)碼 VoipReleaseBuilder.setCalled(called);// 請(qǐng)求的被叫號(hào)碼,即John的號(hào)碼 //通過(guò)RL_YTX.onCallMsgListener(callback)中的callback.callId屬性獲得callId //通過(guò)RL_YTX.onCallMsgListener(callback)中的callback.caller屬性獲得called //通過(guò)RL_YTX.onCallMsgListener(callback)中的callback.called屬性獲得caller RL_YTX.releaseCall(VoipReleaseBuilder,function(){ }, function(obj){ alert(obj.code) })
RL_YTX.setRecordVideo();
RL_YTX.onCallMsgListener(function(obj){ obj.callId;//唯一消息標(biāo)識(shí) obj.caller;//主叫號(hào)碼 obj.called; //被叫無(wú)值 obj.callType;//0 音頻 1 視頻 obj.state; //1 對(duì)方振鈴(被叫的振鈴消息) 2 呼叫中(主叫呼叫發(fā)送成功返回該值) 3 呼叫建立(被叫接收后主叫監(jiān)聽(tīng)到該值) //4 呼叫失敗(對(duì)主叫;對(duì)方拒絕或者忙) 5 結(jié)束通話(主叫取消成功和主、被叫掛機(jī)成功后得到該值) //6 呼叫到達(dá)(被叫監(jiān)聽(tīng)到呼叫請(qǐng)求時(shí)獲得該值) //7 媒體已正式建立連接(被叫獲取該值) obj.code;// 200操作成功,非200代表因本地原因,導(dǎo)致無(wú)法接受音視頻邀請(qǐng)(例如不支持音視頻等),具體原因請(qǐng)參照錯(cuò)誤碼 }
文檔更新時(shí)間:2017年12月12日