rtcCore

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

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

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

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

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

    registerApp({params})

    params

    appKey:

    accessSecret:

    • 类型:字符串
    • 默认值:无
    • 描述:中的Access Secret

    companyId:

    示例代码

    config.xml配置示例:

    1. <param name="appKey" value="46712182-f653-11e5-8fee-5254009b7711" />
    2. <param name="accessSecret" value="eaa6da7a910e422e8279677470a1eb9f" />
    3. </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

    与的参数一致

    示例代码

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

    错误码说明

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

    init

    初始化连麦模块。

    init({params})

    params

    session:

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

    login

    登录视频通话房间。

    login(callback(ret, err))

    callback(ret, err)

    ret:

    • 类型:JSON对象
    • 描述:始终为空
    • 类型: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. description:"用户未登录" //错误描述
    3. }

    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,必须为返回字段中的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对象
    • 描述:事件发生时传递的参数,可能为空

    示例代码

    移除事件监听

    removeEventListener({params})

    params

    name:

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

    示例代码

    1. rtcP2P.removeEventListener({
    2. name: 'disconnected'

    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. }