云屋视频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 ""