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:

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

示例代码

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

config.xml配置示例:

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

setDebugLogEnabled

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

setDebugLogEnabled({params})

params

enabled:

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

示例代码

core.setDebugLogEnabled({
    enabled: true
});

authRoomSession

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

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

params

roomId:

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

password:

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

nickname:

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

callback(ret, err)

ret:

  • 类型:JSON对象

内部字段:

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

err:

  • 类型:JSON对象

内部字段:

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

示例代码

var session = {
    roomId: '',
    password: '',
    nickname: ''
};
core.authRoomSession(session, function( ret, err ){
    if( ret ){
         alert( JSON.stringify( ret ) );
    }else{
         alert( JSON.stringify( err ) );
    }
});

destroyRoomSession

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

destroyRoomSession({params})

params

authRoomSession的参数一致

示例代码

var session = {
    roomId: '',
    password: '',
    nickname: ''
};
core.destroyRoomSession(session);

错误码说明

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

功能模块(rtcP2P)

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

接口列表

init

初始化连麦模块。

init({params})

params

session:

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

login

登录视频通话房间。

login(callback(ret, err))

callback(ret, err)

ret:

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

err:

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

内部字段:

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

logout

登出视频通话房间。

logout()

queryUserList

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

queryUserList(param, callback(ret, err))

params

index:

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

totoal:

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

callback(ret, err)

ret:

类型:JSON对象

内部字段:

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

err:

类型:JSON对象

内部字段:

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

示例代码

queryUserList({index:0,total:20},function(ret, err) {
    if( ret ){
         alert( JSON.stringify( ret ) );
    }else{
         alert( JSON.stringify( err ) );
    }
});

setRendererView

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

setRendererView({params})

params

localView:

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

内部字段:

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

remoteView:

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

内部字段:

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

示例代码

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

inviteUser

邀请音视频互动聊天;

inviteUser({params})

params

account:

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

示例代码

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

acceptInvitation

接受对方邀请;

acceptInvitation()

示例代码

rtcP2P.acceptInvitation();

denyInvitation

拒绝对方邀请;

denyInvitation()

示例代码

rtcP2P.denyInvitation();

endPeerConnection

结束音视频互动通话;

endPeerConnection()

示例代码

rtcP2P.endPeerConnection();

switchCamera

切换前后摄像头;

switchCamera()

示例代码

rtcP2P.switchCamera();

toggleMic

开关麦克风;

toggleMic()

示例代码

rtcP2P.toggleMic();

错误码说明

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

addEventListener

添加RTCP2P模块事件的监听

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

params

name:

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

callback(ret, err)

ret:

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

示例代码

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

removeEventListener

移除事件监听

removeEventListener({params})

params

name:

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

示例代码

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

removeAllEventListeners

移除所有的事件监听

removeAllEventListeners()

示例代码

rtcP2P.removeAllEventListeners();

事件

inviteCall

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

callback(ret)

ret:

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

示例代码

rtcP2P.addEventListener({
    name:'inviteCall'
},function(ret,err){
    //operation
});

sentAcceptCall

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

callback(ret)

ret:

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

示例代码

rtcP2P.addEventListener({
    name:'sentAcceptCall'
},function(ret,err){
    //operation
});

acceptCall

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

callback(ret)

ret:

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

denyCall

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

callback(ret)

ret:

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

示例代码

rtcP2P.addEventListener({
    name:'denyCall'
},function(ret,err){
    //operation
});

endCall

对方结束连麦的事件;

callback()

示例代码

rtcP2P.addEventListener({
    name:'endCall'
},function(ret,err){
    //operation
});

connected

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

callback(ret)

ret:

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

内部字段:

{
    remoteId:''             //远端用户的ID
}

disconnected

视频通话断开连接的事件

callback()

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

error

发生错误的事件

callback(ret)

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

ret:

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

内部字段:

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