云屋视频H5 SDK参考

点击下载SDK

说明

H5 SDK支持的浏览器有:

操作系统 Chrome 58以上 Firfox 58以上 Safari 11以上 qq浏览器最新版 微信浏览器最新版
windows7以上 支持 支持 无 支持 支持
macOS 10.13及以上 支持 支持 支持 不支持 不支持
iOS 8.0及以上 不支持 不支持 支持 不支持 不支持
Android 4.4及以上 支持 无 无 支持 支持

开发准备

JavaScript 的开发工具有很多,开发者可根据自己的喜好进行选择。在此,我们推荐开发者使用VSCode 作为自己的开发工具,本套开发指南也是针对VSCode开发环境下进行编写的。

开发环境准备

  • 网页开发时,因为webRTC支持的是https协议,所以要保证开发环境网页协议是https

导入SDK文件

  • 将SDK包js子目录下的rtcsdk.min.js和jquery-1.8.0.min.js文件拷贝到自己的web开发环境当中

    引入sdk文件

  • 引用rtcsdk.min.js

<script type="text/javascript" src="js/rtcsdk.min.js"></script>

浏览器版本的支持说明

H5 SDK支持chrome 58及以上版本(chrome58版本后才支持webrtc),开发时尽量选择支持webrtc的浏览器:

基本流程

流程1:(不登录,只参加会议)SDK初始化 -> 设置服务器地址->(参会)-> 反初始化

流程2:(登录后拥有身份,可进行“排队、呼叫、创建会议、参会”等业务)SDK初始化 -> 设置服务器地址-> 登录 ->(排队、呼叫、创建会议、参会)-> 注消 -> 反初始化

SDK初始化

/**
* SDK初始化
* @access public
* @returns {number} 返回错误码(错误码为0表示没有错误)
*/
var result = CRVideo_Init()
if(result != 0){
    //初始化失败
}else {
    //初始化成功
}

SDK反初始化

/**
* SDK反初始化
* @access public
*/
CRVideo_Uninit()

设置服务器地址

/**
* 设置服务器地址
* @access public
* @param {string} serverList -  服务器地址(如:rtc.cloudroom.com);
*/    
CRVideo_SetServerAddr(serverList)

支持单个服务器地址(如:www.cloudroom.com)或多个服务器地址串,此接口并不会对服务器地址的有效性进行验证,请保证地址准确。

登录

/**
* 登录
* 操作成功则回调CRVideo_LoginSuccess,失败则回调CRVideo_LoginFail
* @access public
* @param {string} appID - 云屋鉴权帐号
* @param {string} appSecret - 云屋鉴权密码
* @param {string} nickName - 昵称
* @param {string} userID - 自定义帐号,不需要时传空字符串
* @param {string} userAuthCode -  自定义验证码(有复杂要求的,可以使用json格式),不需要时传空字符串
* @param {string} cookie - 自定义数据 (在回调时,回传给调用者)
*/
CRVideo_Login(appID,appSecret,nickName,userID,userAuthCode,cookie)

登录会有结果事件通知,成功事件CRVideo_LoginSuccess,失败事件CRVideo_LoginFail,失败事件的错误码参见开说明文档CRVideo_ERR_DEF的详细描述。

注销

/**
* 注销本次登陆
* @access public
*/    
CRVideo_Logout()

退出程序时,必须注销本次登录,然后再进行SDK反初始化操作

呼叫和排队

webrtc SDK为开发者提供呼叫、排队功能。

VideoCall(web)文件夹为视频客服的demo。这个demo主要展示的某坐席用户服务于某个队列,系统把这个队列里的排队用户分配给此坐席用户,经过一系列握手之后,再进行视频通话的功能。

业务流程说明

坐席客户:初始化SDK->登录->取得队列信息->服务于某个队列->接受某个排队用户->创建会议->呼叫排队用户->进入会议->音视频通话->挂断/被挂断->停止服务->注销->卸载SDK

排队客户:初始化SDK->取得队列信息->排队于某个队列->接受呼叫->进入会议->音视频通话->挂断/被挂断->注销->卸载SDK

时序图

坐席客户与排队客户通讯的时序图如下所示:

时序图

坐席客户在接受排队用户时,需要创建一个会议,创建成功后把排队用户呼叫进会议中,再进行后面的业务功能操作。用户与用户之间的各种通信功能,如音视频通话,屏幕共享,影音共享等等,必须依托于会议存在。后面还会对会议功能有更详细的说明。

注意事项

A.队列不能由SDK创建,应在Web上先配好

B.一个客服可以服务多个队列,但一个客户只在一个队列排队

C.多个坐席客户可同时服务于一个队列

D.队列有优先级,客服服务多个队列时,将从高优先级的队列服务起。(不同优先级的客户可以通过排队不同队列来实现。 这样比在一个队列插队好,不会引起其他排队用户等待数增加)

会议

H5 SDK为开发者提供的音视频通信功能,屏幕共享,影音共享等功能,须在会议里进行。

业务流程说明

创建一个会议:初始化SDK->登录->创建会议->其他用户参加会议->音视频通话、屏幕共享、影音共享等->离开会议->注销->卸载SDK

参加一个会议:(此处用户未登录参会,实际上登录也可参会)初始化SDK->根据会议号加入一个会议->音视频通话、屏幕共享、影音共享等->离开会议->卸载SDK

时序图

一次完整的会议时序图如下所示:

时序图

注意事项

A.在SDK初始化且登录会议成功后,才能进行各种会议功能

B.如果只是参会,可以不登录;(如上图参会者)

C.离开会议是没有响应消息的(在网络不通时离开会议也不会退不出去),但“结束会议”时有响应的, 只有收到结束成功消息,才真正算结束成功了

音视频通讯

H5 SDK为开发者提供便捷的音视频通讯接口,通过以下几步的操作,可以在会议中集成音视频交互功能。音视频通讯需在会议里进行。

参会人信息

会议里可以通过接口CRVideo_GetAllMembers获取当前参加会议的所有成员的详细信息,接口如下所示:

/**
* 获取所有用户的信息
* @access public
* @return {CRVideo_MemberInfo[]} 返回含多个成员信息
*/    
var meber = CRVideo_GetAllMembers()

会议里可以通过接口CRVideo_GetMemberInfo获取指定成员的详细信息,接口如下所示:

/**
* 获取指定用户的信息
* @access public
* @param {string} userID - 用户ID
* @return {CRVideo_MemberInfo} info - 返回用户userID的成员信息
*/    
var meber = CRVideo_GetMemberInfo(userID)

打开音频

先可以通过接口CRVideo_SetAudioCfg设置本地的音频参数,接口如下所示:

/**
* 系统音频参数设置
* @access public
* @param {CRVideo_AudioCfg} cfg - 设置参数
*/
CRVideo_SetAudioCfg(cfg)

通过接口CRVideo_OpenMic和CRVideo_CloseMic打开和关闭自已或他人的麦克风,接口如下所示:

/**
* 打开自己的麦克风
* 打开自已的麦克风时,先会进入到AOPENING状态,等服务器处理后才会进入AOPEN状态,此时说话才能被采集到;
* @param {string} userID - 用户的ID
* @access public
*/
CRVideo_OpenMic(userid)

/**
* 关闭自己的麦克风
* 关麦操作是立即生效的,本地会立即停止采集;
* @access public
* @param {string} userID - 登录成功后分配的userID
*/
CRVideo_CloseMic(userID)
(取得用户麦克风是否开启或关闭,可通过接口CRVideo_GetMemberInfo获取)

打开视频

计算机可拥有多个摄像头,通过CRVideo_GetAllVideoInfo可获取用户所有摄像头信息,接口如下所示:

/**
*获取用户所有的摄像头信息
* @typedef {object} CRVideo_VideoDeviceInfo - 视频设备信息
* @property {string} userID - 用户ID,仅支持用户本身
* @returns {CRVideo_VideoDeviceInfo[]} 返回设备列表
*/
var VideoInfoArr = CRVideo_GetAllVideoInfo(userID)

通过接口CRVideo_SetDefaultVideo设置指定用户的默认摄像头,接口如下所示:

/**
* 设置默认的摄像头
* @access public
* @param {string} userID - 用户ID,仅支持用户本身
* @param {number} videoID - PC浏览器传入摄像头ID;移动端浏览器传入 1/2 前置/后置摄像头
*/
CRVideo_SetDefaultVideo(userID,videoID)

通过接口CRVideo_SetVideoCfg配置视频的清晰度、帧率、码率等;

/**
*系统视频参数设置
* @typedef {object} CRVideo_VideoCfg - 视频参数
* @property {number} sizeType - PC端传入 1-13表示视频尺寸,移动端传入1-3 表示流畅、标清、高清
* @property {number} fps - 帧率:视频帧率(5~30)
* @property {number} maxbps - 视频码率(1~100*1000*1000);(未配置则使用内部默认值,请参见VIDEO_SHOW_SIZE)
* @property {number} wh_rate - 视频宽高比(0对应16:9,1对应4:3,2对应1:1) (未配置则使用内部默认值0)
* @property {CRVideo_VIDEO_WH_RATE} wh_rate - 视频宽高比例
* @access public
* @param {CRVideo_VideoCfg} cfg - 设置参数
*/
CRVideo_SetVideoCfg(cfg)

通过接口CRVideo_OpenVideo和CRVideo_CloseVideo开启或关闭指定用户的摄像头,接口如下所示:

/**
* 打开用户的摄像头,以便本地、远端显示视频图像
* @access public
* @param {string} userID - 用户ID,目前仅支持用户本身
*/
CRVideo_OpenVideo(userID)

/**
* 关闭用户的摄像头
* @access public
* @param {string} userID - 用户ID,目前仅支持用户本身
*/
CRVideo_CloseVideo(userID)
(取得用户摄像头是否开启或关闭,可通过接口CRVideo_GetMemberInfo获取)

会议录制

参会过程中可将视频、音频录制成视频。

先通过接口CRVideo_StartSvrRecording开启云端录制,参数说明请参考截图,接口如下所示:

/**
* 开始录制
* @access public
* @param {Object} svr_recordCfgObj 文件配置
* @param {Array} svr_recordContentsArr 录制对象
*/    
CRVideo_StartSvrRecording(svr_recordCfgObj, svr_recordContentsArr)

可以通过接口CRVideo_StopSvrRecording停止云端录制,接口如下所示:

/**
* 停止录制
* @access public
*/    
CRVideo_StopSvrRecording()

其他接口

更多的功能接口,请参考云屋webRTC sdk帮助文档。

© Carter all right reserved,powered by Gitbook文件修订时间: 2019-03-05 10:47:20

results matching ""

    No results matching ""