互动直播

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

9.1.1 vdn(观众)模式

function videoLiveVdnCallBack(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 "vdnApplyDownload":
//申请vdn状态,data.status == "success"为成功
break;
case "addUploader":
//直播添加成员
break;
case "removeUploader":
//直播移除成员
break;
case "streamData":
//收到实时数据
break;
case "serverErr":
//服务器错误
break;
}
break;
case "onChatRoomMessage":
//收到聊天室类别消息
{
switch(data.type)
{
case "recvChatPrivateMsg":
//收到私聊消息
if(data.msg.msgType == "applyAgree" || data.msg.msgType == "inviteStart")
{
//收到同意上麦或邀请开始上麦消息
}
else if(data.msg.msgType == "linkStop")
{
//收到结束上麦消息
}
else if(data.msg.msgType == "applyDisagree")
{
//收到拒绝上麦消息
}
else if(data.msg.msgType == "invite")
{
//收到邀请上麦消息
}
else
{
//收到普通消息
}
break;
case "recvChatMsg":
//收到消息
break;
case "chatroomUserKicked":
//收到被踢出消息
break;
case "serverErr":
//服务器错误
break;
}
}
break;
}
}
/**
* 创建视频会议房间
* @param _type 类型:vdn,观看者;src,上传者
* @param _oper 操作类型:new,创建;open,加入
* @param _userCallback 消息回调
* @param _userData 存储聊天室的相关信息(ID,Name,Creator),结构为{"roomInfo":{"ID":"", "Name":"", "Creator":""}}
*/
currRoom = StarRtc.Instance.getVideoLiveRoomSDK(_type, _oper, _userCallback, _userData)

例:
currRoom = StarRtc.Instance.getVideoLiveRoomSDK("vdn", "open", videoLiveVdnCallBack, {"roomInfo":{"ID":"", "Name":"", "Creator":""}});

9.1.2 src(主播)模式

function videoLiveSrcCallBack(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 "srcApplyUpload":
//申请上传状态,data.status == "success"为成功
break;
case "addUploader":
//直播添加成员
break;
case "removeUploader":
//直播移除成员
break;
case "delChannel":
//删除直播,data.status == "success"为成功
break;
case "createChannel":
//创建直播,data.status == "success"为成功
break;
case "streamData":
//收到实时数据
break;
case "serverErr":
//服务器错误
break;
}
}
break;
case "onChatRoomMessage":
//收到聊天室类别消息
{
switch(data.type)
{
case "recvChatPrivateMsg":
//收到私聊消息
if(data.msg.msgType == "linkStop")
{
//收到结束上麦消息
}
else if(data.msg.msgType == "apply")
{
//收到申请上麦消息
}
else if(data.msg.msgType == "inviteAgree")
{
//收到同意邀请上麦消息
}
else if(data.msg.msgType == "inviteDisagree")
{
//收到拒绝邀请上麦消息
}
else
{
//收到普通消息
}
break;
case "recvChatMsg":
//收到消息
break;
case "chatroomUserKicked":
//收到被踢出消息
break;
case "deleteChatRoom":
//收到删除聊天室消息
break;
case "serverErr":
//服务器错误
break;
}
}
break;
}
}

例:
currRoom = StarRtc.Instance.getVideoLiveRoomSDK("src", "open", videoLiveSrcCallBack, {"roomInfo":{"ID":"", "Name":"", "Creator":""}});

9.2 API 说明

/**
* 设置登录信息
* @param _agentId appID
* @param _userId userID
* @param _authKey authKey
*/
StarRtc.StarRoomSDK.login = function (_agentId, _userId, _authKey)

/**
* 连接视频会议
*/
StarRtc.StarRoomSDK.sigConnect = function()

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

/**
* 创建本地视频流
* @param streamOption 流配置(分辨率等)
*/
StarRtc.StarRoomSDK.createStream = function(streamOption)

/**
* 创建视频会议
*/
StarRtc.StarRoomSDK.createNew = function()

/**
* 获取聊天室在线用户数
*/
StarRtc.StarRoomSDK.getRoomOnlineNum = function()

/**
* 删除视频会议
*/
StarRtc.StarRoomSDK.deleteCurrRoom = function()

/**
* 加入视频会议
*/
StarRtc.StarRoomSDK.joinRoom = function()

/**
* 离开视频会议
*/
StarRtc.StarRoomSDK.leaveRoom = function(_flag)

/**
* 切换大小图
* @param upId 切换大小图的id
*/
StarRtc.StarRoomSDK.streamConfigChange = function(upId)

/**
* 踢出房间
*/
StarRtc.StarRoomSDK.kickOutUser = function(kickOutUserId)

/**
* 发送实时数据
* @param data 实时数据
*/
StarRtc.StarRoomSDK.sendStreamData = function(data)

/**
* 发送聊天室消息
* @param msg 消息正文
*/
StarRtc.StarRoomSDK.sendChatMsg = function(msg)

/**
* 发送聊天室消息
* @param userId 待发送的用户id
* @param msg 消息正文
*/
StarRtc.StarRoomSDK.sendChatPrivateMsg = function(userId, msg)

/**
* 发送申请上麦消息
*/
StarRtc.StarRoomSDK.sendApplyMsg = function()

/**
* 发送同意申请上麦消息
* @param userId 待发送的用户id
*/
StarRtc.StarRoomSDK.sendApplyAgreeMsg = function(userId)

/**
* 发送拒绝申请上麦消息
* @param userId 待发送的用户id
*/
StarRtc.StarRoomSDK.sendApplyDisagreeMsg = function(userId)

/**
* 发送邀请上麦消息
* @param userId 待发送的用户id
*/
StarRtc.StarRoomSDK.sendInviteLinkMsg = function(userId)

/**
* 发送同意邀请上麦消息
*/
StarRtc.StarRoomSDK.sendInviteLinkAgreeMsg = function()

/**
* 发送拒绝邀请上麦消息
*/
StarRtc.StarRoomSDK.sendInviteLinkDisagreeMsg = function()

/**
* 发送开始邀请上麦消息
*/
StarRtc.StarRoomSDK.sendInviteLinkStartMsg = function()

/**
* 发送断开上麦消息
* @param userId 待发送的用户id
*/
StarRtc.StarRoomSDK.sendLinkStopMsg = function(userId)

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