- rtcCore
- 简介
- 基础模块(rtcCore)
- 功能模块(rtcP2P)
- 接口列表
- login
- logout
- queryUserList
- params
- callback(ret, err)
- 示例代码
- setRendererView
- params
- inviteUser
- acceptInvitation
- denyInvitation
- endPeerConnection
- switchCamera
- toggleMic
- 错误码说明
- addEventListener
- removeEventListener
- removeAllEventListeners
- 事件
- inviteCall
- sentAcceptCall
- acceptCall
- denyCall
- endCall
- connected
- disconnected
- error
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:
- 类型:字符串
- 默认值:无
- 描述:亲加管理后台中的App Key
accessSecret:
- 类型:字符串
- 默认值:无
- 描述:亲加管理后台中的Access Secret
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
- login
- logout
- queryUserList
- setRendererView
- inviteUser
- acceptInvitation
- denyInvitation
- endPeerConnection
- switchCamera
- toggleMic
- 错误码说明
接口列表
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:"" //错误描述
}