rtcCore

来自于:开发者立即使用

简介

RTC连麦SDK是一套基本的视频连麦SDK产品,包含了登录音视频通话房间,获取当前聊天室用户列表,发起邀请连麦,接受连麦,拒绝连麦,结束连麦等功能; 整套SDK包括基础模块(rtcCore) 和 功能模块(rtcP2P),在集成使用时必须集成这两个模块;

注:如没有特别说明,文档中提及的接口都是iOS和Android通用的

实例地址:https://github.com/QPlus/P2P-AV-Demo

基础模块(rtcCore)

包含了连麦时所必需的基础接口实现;

registerApp

初始化函数。如果在config.xml文件中配置了Appkey以及AccessSecret的信息,那么在模块初始化的时候底层会自动调用此接口,无需再手动调用。

registerApp({params})

params

appKey:

accessSecret:

companyId:

  • 类型:字符串
  • 默认值:无
  • 描述:(可选项)亲加管理后台中的公司唯一标识

示例代码

  1. var core = api.require('rtcCore');
  2. core.registerApp({
  3. appKey: "46712182-****-11e5-8fee-5254009b7711",
  4. accessSecret: "eaa6da7a9******e8279677470a1eb9f"
  5. });

config.xml配置示例:

  1. <feature name="rtcCore">
  2. <param name="appKey" value="46712182-f653-11e5-8fee-5254009b7711" />
  3. <param name="accessSecret" value="eaa6da7a910e422e8279677470a1eb9f" />
  4. </feature>

setDebugLogEnabled

设置是否打印debug日志。默认情况下不打印

setDebugLogEnabled({params})

params

enabled:

  • 类型:布尔值
  • 默认值:false
  • 描述:是否打印debug日志

示例代码

  1. core.setDebugLogEnabled({
  2. enabled: true
  3. });

authRoomSession

验证房间信息。session是对应一个连麦房间的,验证通过才能获取连麦房间的信息

authRoomSession({params}, callback(ret, err))

params

roomId:

  • 类型:字符串
  • 默认值:无
  • 描述:连麦房间的唯一标识

password:

  • 类型:字符串
  • 默认值:无
  • 描述:连麦房间的登录密码。不同的登录密码对应不同的用户级别

nickname:

  • 类型:字符串
  • 默认值:无
  • 描述:登录用户的昵称

callback(ret, err)

ret:

  • 类型:JSON对象

内部字段:

  1. {
  2. accessToken:'', //认证token
  3. createTime:1461223473, //创建时间,本地维护
  4. expired:false, //当前token是否过期。false表示没过期,true表示过期
  5. expiresIn:21600, //有效时间,单位(秒)
  6. role:2, //当前token的用户级别。1表示后台用户,2表示主播用户,3表示助理用户,4表示普通用户
  7. userStatus:0 //(可选)当前用户状态
  8. }

err:

  • 类型:JSON对象

内部字段:

  1. {
  2. code:401, //错误的状态码
  3. description:"验证失败" //错误描述
  4. }

示例代码

  1. var session = {
  2. roomId: '',
  3. password: '',
  4. nickname: ''
  5. };
  6. core.authRoomSession(session, function( ret, err ){
  7. if( ret ){
  8. alert( JSON.stringify( ret ) );
  9. }else{
  10. alert( JSON.stringify( err ) );
  11. }
  12. });

destroyRoomSession

清除房间验证信息,销毁session实例。退出连麦房间时调用

destroyRoomSession({params})

params

authRoomSession的参数一致

示例代码

  1. var session = {
  2. roomId: '',
  3. password: '',
  4. nickname: ''
  5. };
  6. core.destroyRoomSession(session);

错误码说明

错误码描述
401验证失败,或者是没有验证成功的情况下调用了别的接口
-101JSON解析出错
-102网络错误
-106超时
-999未知错误

功能模块(rtcP2P)

包含了连麦所必需的功能接口实现;

接口列表

init

初始化连麦模块。

init({params})

params

session:

  • 类型:JSON对象
  • 默认值:无
  • 描述:房间信息,格式与authRoomSession的参数一致

login

登录视频通话房间。

login(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 描述:始终为空

err:

  • 类型:JSON对象
  • 描述:登录成功成功时为空,失败时不为空

内部字段:

  1. {
  2. code:401, //错误的状态码
  3. description:"验证失败" //错误描述
  4. }

logout

登出视频通话房间。

logout()

queryUserList

获取音视频通话房间在线用户列表。

queryUserList(param, callback(ret, err))

params

index:

类型:整数类型 默认值:无 描述:开始查询的位置

totoal:

类型:整数类型 默认值:无 描述:查询的人数

callback(ret, err)

ret:

类型:JSON对象

内部字段:

  1. {
  2. total:1, //实际查询到的总人数
  3. entities:[
  4. {"account":"jfkasdfjdlswennxjsdjfeaka121239sdfkljs", //账户ID
  5. "nickname":"445", //昵称
  6. "role" : 2} //角色
  7. ]
  8. }

err:

类型:JSON对象

内部字段:

  1. {
  2. code:201, //错误的状态码
  3. description:"用户未登录" //错误描述
  4. }

示例代码

  1. queryUserList({index:0,total:20},function(ret, err) {
  2. if( ret ){
  3. alert( JSON.stringify( ret ) );
  4. }else{
  5. alert( JSON.stringify( err ) );
  6. }
  7. });

setRendererView

设置远端和本地视频显示区域;

setRendererView({params})

params

localView:

  • 类型:json对象
  • 默认值:无
  • 描述:表示本地视频的窗口参数

内部字段:

  1. {
  2. fixedOn:"frame", //窗口的名称
  3. fixed:true //是否随窗口一起滚动,默认true
  4. }

remoteView:

  • 类型:json对象
  • 默认值:无
  • 描述:表示远端视频的窗口参数

内部字段:

  1. {
  2. fixedOn:"frame", //窗口的名称
  3. fixed:true //是否随窗口一起滚动,默认true
  4. }

示例代码

  1. rtcP2P.setRendererView({localView: {fixedOn: 'frm_float'}, remoteView: {fixedOn: 'frm_mine'}});

inviteUser

邀请音视频互动聊天;

inviteUser({params})

params

account:

  • 类型:字符串
  • 默认值:无
  • 描述:被邀请者的用户id,必须为queryUserList返回字段中的account值。在同一房间的任意两个用户可以进行邀请;

示例代码

  1. rtcP2P.inviteUser({account: "account"});

acceptInvitation

接受对方邀请;

acceptInvitation()

示例代码

  1. rtcP2P.acceptInvitation();

denyInvitation

拒绝对方邀请;

denyInvitation()

示例代码

  1. rtcP2P.denyInvitation();

endPeerConnection

结束音视频互动通话;

endPeerConnection()

示例代码

  1. rtcP2P.endPeerConnection();

switchCamera

切换前后摄像头;

switchCamera()

示例代码

  1. rtcP2P.switchCamera();

toggleMic

开关麦克风;

toggleMic()

示例代码

  1. rtcP2P.toggleMic();

错误码说明

错误码描述
401验证失败,或者是没有验证成功的情况下调用了别的接口
-101JSON解析出错
-102网络错误
-103当前没有登录
-106超时
-999未知错误

addEventListener

添加RTCP2P模块事件的监听

addEventListener({params}, callback(ret, err))

params

name:

  • 类型:字符串
  • 默认值:无
  • 描述:sdk事件名称(详见事件

callback(ret, err)

ret:

  • 类型:JSON对象
  • 描述:事件发生时传递的参数,可能为空

示例代码

  1. //监听与对方音视频互动断开连接的事件
  2. rtcP2P.addEventListener({
  3. name:'disconnected'
  4. },function(ret,err){
  5. //operation
  6. });

removeEventListener

移除事件监听

removeEventListener({params})

params

name:

  • 类型:字符串
  • 默认值:无
  • 描述:sdk事件名称(详见事件

示例代码

  1. rtcP2P.removeEventListener({
  2. name: 'disconnected'
  3. });

removeAllEventListeners

移除所有的事件监听

removeAllEventListeners()

示例代码

  1. rtcP2P.removeAllEventListeners();

事件

inviteCall

被邀请者接受到对方发起连麦邀请的事件

callback(ret)

ret:

类型:JSON对象 描述:sendId 对方用户ID sendName 对方用户昵称

示例代码

  1. rtcP2P.addEventListener({
  2. name:'inviteCall'
  3. },function(ret,err){
  4. //operation
  5. });

sentAcceptCall

被邀请者发送完接受连麦的事件

callback(ret)

ret:

类型:JSON对象 描述:code 对应的发送是否成功的code

示例代码

  1. rtcP2P.addEventListener({
  2. name:'sentAcceptCall'
  3. },function(ret,err){
  4. //operation
  5. });

acceptCall

邀请者接受到对方响应接受连麦的事件

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:sendName 对方用户名
  1. 示例代码
  2. rtcP2P.addEventListener({
  3. name:'acceptCall'
  4. },function(ret,err){
  5. //operation
  6. });

denyCall

邀请者接受到对方响应拒绝连麦的事件

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:sendName 对方用户名

示例代码

  1. rtcP2P.addEventListener({
  2. name:'denyCall'
  3. },function(ret,err){
  4. //operation
  5. });

endCall

对方结束连麦的事件;

callback()

示例代码

  1. rtcP2P.addEventListener({
  2. name:'endCall'
  3. },function(ret,err){
  4. //operation
  5. });

connected

成功建立视频通话连接的事件

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:当前正在通话的远端用户的信息,不为空

内部字段:

  1. {
  2. remoteId:'' //远端用户的ID
  3. }

disconnected

视频通话断开连接的事件

callback()

收到此事件后,与视频通话房间的连接也会断开,如需重新建立视频通话,需要重进调用
inviteCall

error

发生错误的事件

callback(ret)

收到此事件后,与视频通话房间的连接也会断开,如需重新建立视频通话,需要重进调用inviteCall

ret:

  • 类型:JSON对象
  • 描述:错误的具体信息,不为空

内部字段:

  1. {
  2. code:-1, //错误的状态码
  3. description:"" //错误描述
  4. }