一对一视频通话(VOIP)

7.1 获取StarRtc.StarRoomSDK实例,实现回调函数

function voipCallBack(data, status, oper)
{
var thisRoom = data.obj;
switch (status){
case "connect success":
//连接成功
break;
case "connect failed":
case "connect closed":
//连接失败
break;
case "onWebrtcMessage":
//视频接口消息
switch(data.type)
{
case "streamCreated":
//本地视频流创建,data.status == "success"为成功
break;
case "voipStreamReady":
//远端视频流准备,data.status == "success"为成功
//可以使用data.streamObj对象
break;
}
break;
case "onVoipMessage":
switch(data.type)
{
case "voipRefuse":
//对方拒绝了通话
break;
case "voipHangup":
//对方挂断了通话
break;
case "voipConnect":
//voip接通
break;
case "voipBusy":
//对方正忙
break;
case "voipSingleMsg":
//收到voip消息
break;
}
break;
}
}

/**
* 创建voip房间
* @param _oper 操作类型:call,呼叫者;response,应答者
* @param _userCallback 消息回调
* @param _userData 存储voip房间对方id信息,结构为{"roomInfo":{"targetId":对方id, "audioOnly":是否仅进行音频聊天(可不传入,默认值为false,视频聊天)}}
*/
currRoom = StarRtc.StarSDK.getVoipRoomSDK = function(_oper, _userCallback, _userData)

例:
var starSDK = new StarRtc.StarSDK();
currRoom = starSDK.getVoipRoomSDK("call", voipCallBack, {"roomInfo":{"targetId":"", "audioOnly":true}});

7.2 StarRtc.StarRoomSDK VOIP 部分 API 说明


/**
* 连接房间
*/
StarRtc.StarRoomSDK.sigConnect = function ()

/**
* 断连房间
* @param flag 是否主动断开连接的标志为,用于判断重连
*/
StarRtc.StarRoomSDK.sigDisconnect = function (_flag)

/**
* 创建本地视频流
* @param streamOption 流配置(分辨率等),如{ "video": true, "audio": { deviceId: { ideal: ["default"] } } }, 或{ "video": { width: { ideal: 640 }, height: { ideal: 480 }, frameRate: { ideal: 25 }, facingMode: { ideal: ["user"] } }, "audio": { deviceId: { ideal: ["default"] } }
*/
StarRtc.StarRoomSDK.createStream = function (streamOption)

/**
* 创建分享屏幕视频流
*/
StarRtc.StarRoomSDK.createScreenCaptureStream = function ()

/**
* 设置流可见性(会同时影响自己本地流和对端流)
* @param config 流可见性配置{"video":true, "audio":true}
*/
StarRtc.StarRoomSDK.publishStream = function (config)

/**
* 加入房间
*/
StarRtc.StarRoomSDK.joinRoom = function ()

/**
* 离开房间
* @param _flag 是否主动离开(可选)
*/
StarRtc.StarRoomSDK.leaveRoom = function (_flag)

/**
* 发送voip消息(IM单聊消息)
* @param msg 消息
*/
StarRtc.StarRoomSDK.sendVoipMsg = function (msg)

/**
* 获取是主动断开还是被动断开
*/
StarRtc.StarRoomSDK.activeDisconnect = function()

7.3 StarRtc.Instance VOIP 部分 API 说明

/**
* 发送voip控制消息
* @param _targetId 对方用户Id
* @param _code 控制码
*/
StarRtc.StarSDK.sendVoipCtrlMsg = function(_targetId,_code)

/**
* 发送voip呼叫消息
* @param _targetId 对方用户Id
* @param _ts 时间戳(可选)
* @param _flag 是否是音频呼叫,默认为false(可选)
*/
StarRtc.StarSDK.sendVoipCallMsg = function (_targetId, _ts, _flag)

/**
* 发送voip拒绝消息
* @param _targetId 对方用户Id
*/
StarRtc.StarSDK.sendVoipRefuseMsg = function(_targetId)

/**
* 发送voip挂断消息
* @param _targetId 对方用户Id
*/
StarRtc.StarSDK.sendVoipHungupMsg = function(_targetId)

/**
* 发送voip忙碌消息
* @param _targetId 对方用户Id
*/
StarRtc.StarSDK.sendVoipBusyMsg = function(_targetId)

/**
* 发送voip同意连接消息
* @param _targetId 对方用户Id
*/
StarRtc.StarSDK.sendVoipConnectMsg = function(_targetId)

/**
* 设置回调,用于接管StarRtc.Instance.login方法中设置的回调中的onVoipMessage部分
* @param _callback 回调函数
*/
StarRtc.StarSDK.setIMExtraback = function(_callback)