H5 SDK集成指南
为开发者集成音视频会话及相关高级功能提供相关指导,以下均为 js 代码,详细代码请参考网站源码。
文档中“会议”和“会话”含义等同。
开始音视频会话
快速创建并进入一个简单的音视频会话;
请先准备[说明]中的相关内容:1.引入开sdk文件, 2.运行环境要求, 3.开发环境配置以及连接相关的麦克风摄像头并确认设备工作正常。
基本步骤如下:
1. 初始化SDK
初始化是整个SDK的使用基础,通常在加载页面后进行初始化(CRVideo_Init),退出的时候进行反初始化(CRVideo_Uninit),整个程序的生命周期中只进行一次初始化和反初始化。
相关API参考请见 初始化/反初始化
var init = CRVideo_Init();
//初始化失败会返回对应的错误码
if(init == CRVideo_OCX_VERSION_NOTUPPORTED){
alertLayer("rtcsdk版本过低");
}else if(init == CRVideo_WEB_BROWER_NOTUPPORTED){
alertLayer("不支持的浏览器");
}else if(init != 0){
alertLayer("CRVideo_init sdkErr"+"出错了"+init);
}
2. 登录连接视频服务器
设置视频服务器地址,使用云屋授权账号和自定义用户编号登录
//服务器名字
g_serverName = $("#server_name").val()
//账号
cr_account= $("#login_cpyname").val() ||"demo@cloudroom.com";
//md5加密
cr_psw = md5($("#login_psd").val()) || "md5加密后的密码";
//昵称
g_nickname = uuid(32,16)
//自定义账号
g_userID = uuid(32,16)
//设置服务器地址
CRVideo_SetServerAddr(g_serverName)
//登录
CRVideo_Login(cr_account, cr_psw, g_nickname, g_userID, "")
//登陆成功
CRVideo_LoginSuccess.callback = function(userID,cookie){
//登录成功,开始创建视频会话,见下一步
}
//登录失败
CRVideo_LoginFail.callback = function(sdkErr,cookie){
//登录出错,可以弹出错误提示,或调用登录接口再次重试登录
}
3. 创建视频会话
输入会议标题,创建一个没有密码的视频会话
相关API请参考 创建/销毁视频会议
//创建会议
CRVideo_CreateMeeting(MeetingSubject);
//创建会议成功
CRVideo_CreateMeetingSuccess.callback=function(meetObj,cookie){
//meetObj 对象包含会议ID、会议密码、会议主题
}
//创建会议失败
CRVideo_CreateMeetingFail.callback = function(sdkErr,cookie){
}
//监控会议掉线
CRVideo_MeetingDropped.callback=function(){
}
//会议掉线
CRVideo_LineOff.callback=function(sdkErr){
}
4. 进入会话
用创建成功的会话信息(会议ID和密码)进入会话,其他用户也是利用此会话信息进入该会话。
相关API请参考 进入/退出/结束会议
//进入会议
CRVideo_EnterMeeting(meetID ,pswd,userID,nickName,cookie)
//进入会议完成响应
CRVideo_EnterMeetingRslt.callback=function(sdkErr){
}
5. 打开麦克风/摄像头
进入会话成功后,配置并打开自己的麦克风和摄像头
相关API请参考 麦克风/扬声器列表,麦克风设置,摄像头设备列表,视频设置,会议内可观看摄像头列表,开/关摄像头,视频状态,获取/设置默认视频 相关结构定义请参考 音频配置,用户视频信息,用户视频信息列表
//打开麦克风 传用户自己的ID
CRVideo_OpenMic(g_userID)
// 获取系统上的麦克风设备列表
// * @returns {object[]} 返回麦克风列表数组
var micArr = CRVideo_GetAudioMicNames()
// 获取系统上的扬声器设备列表
// * @access public
// * @returns {object[]} 返回扬声器设备列表
var spkerArr = CRVideo_GetAudioSpkNames()
// 设置默认的摄像头
// * @access public
// * @param {string} userID - 用户ID
// * @param {number} videoID - PC端为摄像头ID,移动端请看详细介绍
CRVideo_SetDefaultVideo(g_userID,$("#video_select").val())
// 获取用户所有的摄像头信息 返回设备列表
var videoList = CRVideo_GetAllVideoInfo(g_userID)
// 系统视频参数设置 cfg - 设置参数
CRVideo_SetVideoCfg(cfg)
//打开用户的摄像头,以便本地、远端显示视频图像
CRVideo_OpenVideo(g_userID)
// * 获取用户的摄像头状态
// * @access public
// * @param {string} userID - 用户ID
// * @returns {CRVideo_VSTATUS} 麦克风摄像头状态
var vStatus = CRVideo_GetVideoStatus(g_userID){
}
6. 有其他人进入会话
其他人入会的步骤也是上述的[4、5]步,拿到会议信息后进入到他人创建的会议,此步骤的目的是为了实时关注比自己晚进来的人并刷新摄像头画面显示;如果想要获取之前进来的人,可以调用 CRVideo_GetAllMembers 获取会议成员列表.
相关API请参考 有人进入/离开会议通知
相关结构定义请参考 用户视频信息列表
/**
*获取所有用户的信息
* @access public
* @return {CRVideo_MemberInfo[]} 返回含多个成员信息
*/
var meber = CRVideo_GetAllMembers();// 获取所有会员信息
//用户进入会议 相当于第二方监听第三方加入会议
CRVideo_UserEnterMeeting.callback = function(usrID){
// 第三方进入的相关操作
}
// 通知某用户离开了会议exitMeeting
CRVideo_UserLeftMeeting.callback = function(id){
// 第三方离开的相关操作
}
至此,一个简单的音视频会话就建立起来了。
7.退出会话
在未注销的情况下可反复的进入退出同一个会议。
相关API请参考 进入/退出/结束会议
/**
* 离开会话
* 他人离开会话的回调事件CRVideo_UserLeftMeeting
* @access public
*/
CRVideo_ExitMeeting()
/*
* 某用户离开了会议
* @callback CRVideo_UserLeftMeeting
* @param {number} id - 离开会议的用户ID
*/
CRVideo_UserLeftMeeting.callback=function(用户ID){
}
8. 注销登陆
可重复的登录和注销。
相关API请参考 进入/退出/结束会议,登录/注销,初始化/反初始化
/**
*注销本次登陆
*/
CRVideo_Logout()
9.反初始化,退出SDK
执行反初始化后SDK功能不再可用。
相关API请参考 初始化/反初始化
/**
*反初始化
*/
CRVideo_Uninit();
添加音视频会话功能
添加会议内的高级功能
音视频控制
进入会话后实现设备的加载、选择、设置
1.开关麦克风
通过传入参数来控制开关的对象,如果是本地机器上的麦克风,需要传入自己的ID,如果要远程开关他人麦克风,则传入对方的ID
- 相关API请参考 麦克风、扬声器设备的获取,开/关麦克风
/**
* 打开自己的麦克风
* 打开自已的麦克风时,先会进入到AOPENING状态,等服务器处理后才会进入AOPEN状态,此时说话才能被采集到;
* @param {string} userID - 用户的ID
* @access public
*/
CRVideo_OpenMic(userid);
/**
* 关闭自己的麦克风
* 关麦操作是立即生效的,本地会立即停止采集;
* @access public
* @param {string} userID - 登录成功后分配的userID
*/
CRVideo_CloseMic(userid);
云端录制
实现摄像头和屏幕录制,并可上传到服务器
1.开始云端录制
- 相关API请参考 开始云端录制
//开始云端录制
CRVideo_StartSvrRecording(svr_recordCfgObj, svr_recordContentsArr);
CRVideo_SvrRecordStateChanged.callback = function (state, err) {
//云端录制状态变化通知
}
CRVideo_SvrRecVideosChanged.callback = function(jsonContents){
//云端录制内容变化通知
}
2.更新云端录制内容
- 相关API请参考 更新云端录制内容
//更新云端录制内容
CRVideo_UpdateSvrRecordContents(jsonContents)
3.停止云端录制
- 相关API请参考 停止云端录制
//停止录制
CRVideo_StopSvrRecording();
4.获取云端录制信息
- 相关API请参考 获取云端录制信息
//获取云端录制信息
CRVideo_GetSvrRecordState()
5.获取云端录制状态
- 相关API请参考 获取云端录制状态
- 返回值: 录制状态(CRVideo_RECORD_STATE)
var g_getAll_videfile_list = CRVideo_GetAllRecordFiles();
屏幕共享
开启屏幕共享需要安装谷歌浏览器扩展插件,插件集成在:SDK目录/js/CR Screen Sharing extension开始、停止共享
使用接口启动共享,出现共享内容显示组件后,用组件上的功能开始标注和结束共享。
- 相关API请参考 开始/停止屏幕共享,开始/停止屏幕共享操作结果,开始/停止屏幕共享通知
- 相关结构定义请参考 屏幕共享配置
/**
* 开启屏幕共享
* 操作完成则回调CRVideo_StartScreenShareRslt
* @access public
*/
CRVideo_StartScreenShare()
/**
* 停止屏幕共享
* @access public
*/
CRVideo_StopScreenShare()
/**
* 开启屏幕共享的响应事件
* @callback CRVideo_StartScreenShareRslt
* @param {number} sdkErr - 操作失败代码,定义见cr/error
*/
CRVideo_StartScreenShareRslt.callback=function(sdkErr){
}
/**
* 停止屏幕共享的响应事件
* @callback CRVideo_StopScreenShareRslt
* @param {number} sdkErr - 操作失败代码,定义见cr/error
*/
CRVideo_StopScreenShareRslt.callback=function(sdkErr){
}
/**
* 通知他人开启了屏幕共享
* @callback CRVideo_NotifyScreenShareStarted
*/
CRVideo_NotifyScreenShareStarted.callback=function(){
}
/**
* 通知他人停止了屏幕共享
* @callback CRVideo_NotifyScreenShareStopped
*/
CRVideo_NotifyScreenShareStopped.callback=function(){
}
影音播放共享
1.创建影音播放的呈现容器
此配置主要是为了定义共享播放时会议内其他人看到的效果
- 相关API请参考 影音播放的呈现容器
/**
* 创建影音播放的呈现容器
* @access public
* @param {VideoContainerObj} VideoContainerObj - object
*/
var mediaObj = CRVideo_CreatMediaObj(VideoContainerObj)
2.播放、暂停、停止
每次只能播放一个视频,当前播放需要先停止然后才能进行下一个视频播放;
开始播放参数可控制此播放是只有自己可见还是会议内所有人可见。
- 相关API请参考 开始/暂停/停止影音播放,通知影音打开/播放/暂停/停止,通知更新影音播放进度
/**
* 开始播放影音
* @access public
* 响应事件 如果播放成功,请关注通知事件notifyMediaOpened 如果播放失败,请关注通知事件notifyMediaStop
* @param {string} mediaObj - 创建好的影音共享容器
* @param {string} file - File类型对象
* @param {number} locPlay - 是否仅仅本地播放(0:会议内播放 , 1:本地播放)默认0
* @param {number} bPauseWhenFinished - 是否播放完毕自动暂停在最后一帧(0:否 , 1:是 ) 默认0
*/
CRVideo_StartPlayMedia(mediaObj, file, locPlay, bPauseWhenFinished)
/**
* 暂停或恢复播放影音
* @access public
* @param {bool} bPause - ture为暂停,false为恢复
*/
CRVideo_PausePlayMedia(bPause)
/**
* 停止播放影音
* @access public
*/
CRVideo_StopPlayMedia()
3.设置播放进度
可以通过播放组件上的工具条拖动来调整播放进度,也可以用代码来设置播放的进度
- 相关API请参考 设置播放进度
/**
* 设置播放进度
* @access public
* @param {number} pos - 设置播放位置,单位:秒
*/
CRVideo_SetMediaplaypos(pos)
4.播放信息、播放音量
/**
* 取得影音文件信息
* @access public
* @param {string} userID - 用户id
* @returns {CRVideo_MediaInfoObj} - 影音文件信息
*/
var getmediainfo = CRVideo_Getmediainfo(userID)
/**
* 设置本地影音播放音量
* @access public
* @param {number} level - 音量等级( 取值范围:0~100)
*/
CRVideo_SetMediaVolume(level)
=============================
聊天
实现会话内文本聊天,如果需要更加丰富的聊天内容,可自己传输文本格式,并进行相关解析
/**
* 发送IM消息
* 响应事件CRVideo_SendIMMsgRlst
* @access public
* @param {string} text - 发送的文本消息
* @param {string} UserID - 目标用户,如果用户ID为空,消息发送给会议内所有用户
* @param {string} cookie - 自定义用户数据
* @returns {string} - 任务id
*/
var CRVideo_SendIMMsgID = CRVideo_SendIMMsg(text,UserID,cookie)
/**
* 发送IM消息,SDK通知使用者发送结果
* @callback CRVideo_SendIMMsgRlst
* @param {string} taskID - 发送任务id
* @param {number} sdkErr - 操作结果代码,定义见cr/error
* @param {string} cookie - 自定义用户数据
*/
CRVideo_SendIMMsgRlst.callback=function(taskID,sdkErr,cookie){
}
/**
* SDK通知收到IM消息
* @callback CRVideo_NotifyIMMsg
* @param {string} fromUserID - 消息来源
* @param {string} text - 消息内容
* @param {number} sendTime - 消息发送时间戳,从1970开始算起
*/
CRVideo_NotifyIMMsg.callback=function(fromUserID,text,sendTime){
}
参会成员管理
获取会话内人员及相关信息,得到成员的userID后可以对其进行相关的远程音视频操作
/**
* 获取所有用户的信息 //获取所有参会人
* @access public
* @return {CRVideo_MemberInfo[]} 返回含多个成员信息
*/
var GetAllMembers = CRVideo_GetAllMembers()
/**
* 获取指定用户的信息 //获取某个参会人的信息
* @access public
* @param {string} userID - 用户ID
* @return {CRVideo_MemberInfo} info - 返回用户userID的成员信息
*/
var GetMemberInfo = CRVideo_GetMemberInfo(userID)
队列管理
利用队列功能,实现用户分配。使用队列时通常会有两种角色,坐席和客户,队列模块把排队的客户分配给某个服务队列的坐席。
队列功能介绍请参考 队列管理组件
1.初始化队列,获取队列数据
在登录成功后初始化队列数据
/**
* 初始化用户队列功能数据。//可在登录成功后初始化队列数据
* 操作完成回调CRVideo_InitQueueDatRslt,初始化成功后才可获取队列队列相关信息。
* @access public
* @param {string} cookie -自定义数据 (在回调时,回传给调用者)
*/
CRVideo_InitQueueDat(cookie)
/**
* 队列初始化操作结果
* @callback CRVideo_InitQueueDatRslt
* @param {number} sdkErr - 操作结果代码,定义见cr/error
* @param {string} cookie - 自定义用户数据
*/
CRVideo_InitQueueDatRslt.callback = function(sdkErr,cookie){
}
2.坐席队列操作
坐席角色开始和停止服务队列,以及操作后队列状态的变化
- 相关API请参考 开始/停止服务队列,开始/停止队列服务结果
- 相关结构定义请参考 队列状态
/**
* 开始服务某个队列(可以多次调用,开启对多个队列的服务) //开始服务队列
* 操作回调CRVideo_StartServiceRslt
* 开启成功后:
* a. 如果没有开启免打挽,那么系统会自动分配客户:CRVideo_AutoAssignUser(user);
* b. 如果开启免打挽,系统就不会分配客户,如需服务客户可调用:reqAssignUser。
* @access public
* @param {string} queID - 队列ID
* @param {string} cookie - 自定义数据 (在回调时,回传给调用者)
*/
CRVideo_StartService(queID,cookie)
/**
* 停止服务某个队列 //停止服务队列
* 操作完成回调CRVideo_StopServiceRslt
* @access public
* @param {string} queID - queID 队列ID
* @param {string} cookie - cookie自定义数据 (在回调时,回传给调用者)
*/
CRVideo_StopService(queID,cookie)
/**
* 获取我服务的所有队列
* @access public
* @returns {string[]} 返回我服务的队列列表
*/
var GetServingQueues = CRVideo_GetServingQueues()
/* 开始服务队列操作结果
* @callback CRVideo_StartServiceRslt
* @param {number} queID - 服务的队列ID
* @param {number} sdkErr - 操作结果代码,定义见cr/error
* @param {string} cookie - 自定义用户数
*/
CRVideo_StartServiceRslt.callback = function(queID,sdkErr,cookie){
}
/**
* 停止服务队列操作结果
* @callback CRVideo_StopServiceRslt
* @param {number} queID - 服务的队列ID
* @param {number} sdkErr - 操作结果代码,定义见cr/error
* @param {string} cookie - 自定义用户数
*/
CRVideo_StopServiceRslt.callback = function(queID,sdkErr,cookie){
}
/**
* 队列状态变化通知
* @callback CRVideo_QueueStatusChanged
* @param {CRVideo_QueStatus} queStatus -队列状态
*/
CRVideo_QueueStatusChanged.callback=function(queStatus){
}
3.坐席请求用户
在设置DND免打扰状下态,系统不再自动分配,需要手动申请用户
/**
* 设置免打扰状态。
* 操作成功则回调CRVideo_SetDNDStatusSuccess,失败则回调CRVideo_SetDNDStatusFail。
* @access public
* @param {number} DNDStatus - 0代表关闭免打扰, 其它值代表开启免打扰,含义自由定义
* @param {string} cookie - 自定义数据 (在回调时,回传给调用者)
*/
CRVideo_SetDNDStatus(DNDStatus,cookie)
/**
* 请求分配一个客户
* 当关闭免打扰时,系统将自动分配客户,无需调用此函数;
* 当开启免打扰时,系统不再自动分配客户,座席如需服务客户可使用此函数分配;
* @access public
* @param {string} cookie - 自定义数据 (在回调时,回传给调用者)
*/
CRVideo_ReqAssignUser(cookie)
/**
* 请求分配客户操作结果
* @callback CRVideo_ReqAssignUserRslt
* @param {number} sdkErr - 操作结果代码,定义见cr/error
* @param {CRVideo_QueUser} user - 队列用户信息
* @param {string} cookie - 自定义用户数
*/
CRVideo_ReqAssignUserRslt.callback = function(sdkErr,user,cookie){
}
4.系统自动给坐席分配用户
系统自动分配的用户在坐席还未选择接受或拒绝时,系统可以撤回分配
- 相关API请参考 自动分配用户通知,接受/拒绝分配的用户,自动分配用户被取消
/* 系统自动安排客户
* @callback CRVideo_AutoAssignUser
* @param {CRVideo_QueUser} user - 队列用户信息
* 如果想停止系统的自动分配,请通setDNDStatus设置免打扰功能
*/
CRVideo_AutoAssignUser.callback = function(user){
}
/**
* 响应分配客户操作结果
* @callback CRVideo_ResponseAssignUserRslt
* @param {number} sdkErr - 操作结果代码,定义见cr/error
* @param {string} cookie - 自定义用户数
*/
CRVideo_ResponseAssignUserRslt.callback = function(sdkErr,cookie){
}
/**
* 系统取消已经安排的客户
* @callback CRVideo_CancelAssignUser
* @param {string} queID - 服务的队列
* @param {string} userid - 用户id
*/
CRVideo_CancelAssignUser.callback = function(queID,userid){
}
5.客户排队操作
客户选择一个队列进行排队,每次只能排一个队列
/**
* 客户开始排队
* 操作完成回调CRVideo_StartQueuingRslt
* @access public
* @param {string} queID - queID 队列ID
* @param {string} cookie - cookie自定义数据 (在回调时,回传给调用者)
*/
CRVideo_StartQueuing(queID,cookie)
/**
* 客户停止排队
* 操作完成回调CRVideo_StopQueuingRslt
* @access public
* @param {string} cookie - cookie自定义数据 (在回调时,回传给调用者)
*/
CRVideo_StopQueuing(cookie)
/**
* 开始排队操作结果
* @callback CRVideo_StartQueuingRslt
* @param {number} sdkErr - 操作结果代码,定义见cr/error
* @param {string} cookie - 自定义用户数据
*/
CRVideo_StartQueuingRslt.callback = function(sdkErr,cookie){
}
/**
* 停止排队操作结果
* @callback CRVideo.CbProxy~CRVideo_StopQueuingRslt
* @param {number} sdkErr - 操作结果代码,定义见cr/error
* @param {string} cookie - 自定义用户数
*/
CRVideo_StopQueuingRslt.callback = function(sdkErr,cookie){
}
/**
* 队列状态变化通知
* @callback CRVideo_QueueStatusChanged
* @param {CRVideo_QueStatus} queStatus -队列状态
*/
CRVideo_QueueStatusChanged.callback = function(queStatus){
}
/**
* 排队信息变化通知
* @callback CRVideo_QueuingInfoChanged
* @param {CRVideo_QueInfo} queuingInfo - 队列信息
*/
CRVideo_QueuingInfoChanged.callback = function(queuingInfo){
}
呼叫他人
实现用户到用户的呼叫,以此来实现会话信息的分发以及相关信息的传递
1.主叫
呼叫发起方
- 相关API请参考 开始呼叫,挂断呼叫,开始呼叫结果,挂断呼叫结果,通知呼叫被对方接受/拒绝
/**
* 发起呼叫,邀请用户参加视频会话。
* 操作成功则回调CRVideo_CallSuccess,失败则回调CRVideo_CallFail。
* 呼叫时,对方迟迟不响应,30秒后系统自动结束呼叫。
* @access public
* @param {string} calledUserID - 被叫用户的账户ID
* @param {CRVideo_MeetInfoObj} meetObj - 会议信息
* @param {string} usrExtDat - 自定义扩展参数
* @param {string} cookie - 自定义数据(在回调时,回传给调用者)
* @returns {string} 返回本次呼叫标识码(呼叫ID)
*/
var callID =CRVideo_Call(calledUserID,meetObj,usrExtDat,cookie)
/**
* 挂断正在进行的视频呼叫或视频通话
* 操作成功则回调CRVideo_HangupCallSuccess,失败则回调CRVideo_HangupCallFail。
* @access public
* @param {string} callID - 呼叫ID
* @param {string} usrExtDat - 自定义扩展参数
* @param {string} cookie - 自定义数据 (在回调时,回传给调用者)
*/
CRVideo_HungupCall(callID,usrExtDat,cookie)
/**
* 呼叫他人操作成功响应
* @callback CRVideo_CallSuccess
* @param {string} callID - 呼叫全局标识
* @param {string} cookie - 自定义用户数据
*/
CRVideo_CallSuccess.callback = function(callID,callback){
}
/**
* 呼叫他人操作失败响应
* @callback CRVideo.CbProxy~CRVideo_CallFail
* @param {string} callID - 呼叫全局标识
* @param {number} sdkErr - 操作失败代码,定义见cr/error
* @param {string} cookie - 自定义用户数据
*/
CRVideo_CallFail.callback = function(callID,sdkErr,cookie){
}
/**
* SDK通知自己视频呼叫被对方接受
* @callback CRVideo_NotifyCallAccepted
* @param {string} callID - 呼叫全局标识
* @param {CRVideo_MeetInfoObj} meetObj - 会议信息
* @param {string} usrExtDat - 自定义扩展参数
*/
CRVideo_NotifyCallAccepted.callback = function(callID,meetObj,usrExtDat){
}
/**
* SDK通知自己呼叫被对方拒绝
* @callback CRVideo_NotifyCallRejected
* @param {string} callID - 呼叫全局标识
* @param {number} sdkErr - 呼叫被对方拒绝的原因代码,定义见cr/error
* @param {string} usrExtDat - 自定义扩展参数
*/
CRVideo_NotifyCallRejected.callback = function(callID,sdkErr,usrExtDat){
}
2.被叫
被呼叫方
- 相关API请参考 通知有人呼入,接受/拒绝他人的呼叫,接受/拒绝他人呼叫结果
/**
* SDK通知自己被呼叫
* @callback CRVideo_NotifyCallIn
* @param {string} callID - 呼叫全局标识
* @param {CRVideo_MeetInfoObj} meetObj - 会议信息
* @param {string} callerID - 呼叫人员的标识ID
* @param {string} usrExtDat - 自定义扩展参数
*/
CRVideo_NotifyCallIn.callback = function(callID,meetObj,callerID,usrExtDat){
}
透明传输
独立于会话的传输功能,对SDK透明,发送对象必须要先成功登录
1.发送命令、文本、文件
小数据走命令接口,大数据走文本接口,命令的发送不可以被取消,也没有进度通知
- 相关API请参考 发送命令/数据/文件,取消发送,发送命令/数据/文件结果,发送进度,取消发送结果
/**
* 发送小块数据(一次性发送不会有进度通知,发送结果事件CRVideo_SendCmdRlst,CRVideo_SendCmd不能被CRVideo_CancelSend)
* @access public
* @param {string} targetUserId - 目标用户ID
* @param {string} data - 发送的数据
* @returns {string} 分配的任务ID
*/
var sendCmdID = CRVideo_SendCmd(targetUserId,data);
/**
* 发送大块数据(分块发送,进度通知事件CRVideo_SendProgress,发送结果事件CRVideo_SendBufferRlst,取消发送CRVideo_CancelSend)
* @access public
* @param {string} targetUserId - 目标用户ID
* @param {string} data - 发送的数据
* @returns {string} 分配的任务ID
*/
var sendBufferID = CRVideo_SendBuffer(targetUserId,data)
/**
* 发送文件(分块发送,进度通知事件CRVideo_SendProgress,发送结果事件CRVideo_SendFileRlst,取消发送CRVideo_CancelSend)
* @access public
* @param {string} targetUserId - 目标用户ID
* @param {string} fileName - 需要发送的文件名
* @returns {string} 分配的任务ID
*/
var sendvFileID = CRVideo_SendFile(targetUserId,data)
/**
* 取消数据发送
* 操作完成则回调CRVideo_CancelSendRlst。
* @access public
* @param {string} taskID - 任务ID
*/
CRVideo_CancelSend(taskID)
/**
* 发送数据时,SDK通知发送进度
* @callback CRVideo_SendProgress
* @param {string} taskID - 发送任务id
* @param {number} sendedLen - 已发送的数据长度
* @param {number} totalLen - 需要发送的总长度
* @param {string} cookie - 自定义用户数据
*/
CRVideo_SendProgress.callback = function(taskID,sendedLen,totalLen,cookie){
}
/**
* 发送数据时,SDK通知发送结果
* @callback CRVideo_SendCmdRlst
* @param {string} taskID - 发送任务id
* @param {number} sdkErr - 操作失败代码,定义见cr/error
* @param {string} cookie - 自定义用户数据
*/
CRVideo_SendCmdRlst.callback = function(taskID,sdkErr,cookie){
}
/**
* 发送数据时,SDK通知发送结果
* @callback CRVideo_SendBufferRlst
* @param {string} taskID - 发送任务id
* @param {number} sdkErr - 操作失败代码,定义见cr/error
* @param {string} cookie - 自定义用户数据
*/
CRVideo_SendBufferRlst.callback = function(taskID,sdkErr,cookie){
}
/**
* 发送文件时,SDK通知发送结果
* @callback CRVideo_SendFileRlst
* @param {string} taskID - 发送任务id
* @param {number} fileName - 文件名
* @param {number} sdkErr - 操作失败代码,定义见cr/error
* @param {string} cookie - 自定义用户数据
*/
CRVideo_SendFileRlst.callback = function(taskID,fileName,sdkErr,cookie){
}
/**
* 取消发送响应
* @callback CRVideo_CancelSendRlst
* @param {string} taskID - 发送任务id
* @param {number} sdkErr - 操作失败代码,定义见cr/error
* @param {string} cookie - 自定义用户数据
*/
CRVideo_CancelSendRlst.callback = function(taskID,sdkErr,cookie){
}
2.收到命令、数据、文件
收到别人发送数据的通知
- 相关API请参考 通知有命令/数据/文件发来
/**
* SDK通知收到小块数据
* @callback CRVideo_NotifyCmdData
* @param {string} sourceUserId - 数据来源
* @param {string} data - 数据
*/
CRVideo_NotifyCmdData.callback = function(sourceUserId,data){
}
/**
* SDK通知收到大块数据
* @callback CRVideo_NotifyBufferData
* @param {string} sourceUserId - 数据来源
* @param {string} data - 数据
*/
CRVideo_NotifyBufferData.callback = function(sourceUserId,data){
}
/**
* SDK通知收到文件数据(收到的文件生成在系统临时目录下,请尽快移走对应文件)
* @callback CRVideo_NotifyFileData
* @param {string} sourceUserId - 数据来源
* @param {string} tmpFile - 临时文件,不需要时,请移除或删除对应文件
* @param {string} orgFileName - 源始文件名
*/
CRVideo_NotifyFileData.callback = function(sourceUserId,tmpFile,orgFileName){
}