tencentTrtcSmart

腾讯云实时音视频Smart

腾讯云视频语音通话

该插件实现腾讯云视频语音通话, 支持视频通话和语音通话, 提供类似微信的视频通话和语音通话功能,适用多人、双人视频语音模式、网络会议、在线医疗、视频客服、金融双录等场景。

腾讯云视频互动直播

腾讯云视频互动直播插件,提供互动直播的功能,包括直播、连麦PK、主播 PK、低延时观看、弹幕聊天等在互动直播场景下的相关能力。

论坛示例

该论坛提供了插件使用示例入口,您可以在论坛中找到使用的Demo,以及问题反馈。

技术支持

原生插件本身使用复杂,音视频功能强大,造成接入难度不小。 建议使用前先联系我们的技术支持,协助接入。

联系我们

我们的客服微信: ruanyunkeji006

接口列表

初始化与监听

接口列表 功能
init 初始化
setCallingListener 设置监听器
removeCallingListener 移除监听器
destroy 销毁

登录与登出

接口列表 功能
login 登录
logout 登出

通话操作

接口列表 功能
call 单人通话邀请
groupCall 群组邀请通话
accept 接受当前通话
reject 拒绝当前通话
hangup 挂断当前通话

推拉流相关

接口列表 功能
startRemoteView 显示远端画面
stopRemoteView 停止显示远端画面

音视频控制

接口列表 功能
openCamera 开启摄像头
switchCamera 切换前后摄像头
closeCamera 关闭摄像头
setMicMute 静音本地音频采集
setHandsFree 开启免提
switchToAudio 切换为语音

插件接口

init

初始化

init({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

##代码示例

calling.init({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setCallingListener

设置监听

setCallingListener({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    eventType: "onInvited",
    ...
}

eventType:

  • 类型: JSON对象
  • 描述: 事件名称, 详见事件回调

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.setCallingListener({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#removeCallingListener

移除监听器

removeCallingListener({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.removeCallingListener({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#destroy

销毁

destroy({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.destroy({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#login

登录

login({params}, function(ret, err))

params

sdkAppId:

  • 类型: 整数类型
  • 描述: (必填项)在实时音视频应用Id

userId:

  • 类型: 字符串类型
  • 描述: (必填项) 当前用户的Id,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)

userSig:

  • 类型: 字符串
  • 描述: (必填项) 用户签名

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.login({
    sdkAppId: 14xxxxx16,
    userId: 'test001',
    userSig: 'eJw1zMEOgxxxxxeH3CNMZw_'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#logout

登出

logout({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.logout({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#call

修改个人信息

call({params}, function(ret, err))

params

userId:

  • 类型: 字符串类型
  • 描述: (可选项) 呼叫用户Id

type:

  • 类型: 整数类型
  • 描述: (可选项) 通话类型:视频/语音
  • 取值范围:
    • 0: 未知
    • 1: 视频
    • 2: 语音

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.call({
    userId: 'test002',
    type: 1
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#groupCall

群组邀请通话,被邀请方会收到 onInvited 回调。如果当前处于通话中,可以继续调用该函数继续邀请他人进入通话,同时正在通话的用户会收到 onGroupCallInviteeListUpdate 回调

groupCall({params}, function(ret, err))

params

userIdList:

  • 类型: 数组类型
  • 描述: (必填项)邀请用户Id列表

type:

  • 类型: 整数类型
  • 描述: (必填项) 通话类型:视频/语音
  • 取值范围:
    • 0: 未知
    • 1: 视频
    • 2: 语音

groupId:

  • 类型: 字符串类型
  • 描述: (可选项) 群Id

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.groupCall({
    userIdList: [
        'test001',
        'test002'
    ],
    type: 1,
    groupId: 'group001'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#accept

接受当前通话。当您作为被邀请方收到 onInvited 的回调时,可以调用该函数接听来电

accept({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.accept({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#reject

拒绝当前通话。当您作为被邀请方收到 onInvited 的回调时,可以调用该函数拒绝来电

reject({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.reject({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#hangup

挂断当前通话。当您处于通话中,可以调用该函数结束通话

hangup({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.hangup({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#startRemoteView

远端用户的摄像头数据渲染

startRemoteView({params}, function(ret, err))

params

userId:

  • 类型: 字符串类型
  • 描述: (必填项) 远端用户Id

rect:

  • 类型: JSON对象
  • 描述: (必填项) 显示区域的位置和大小
  • 内部字段:
{
    x: 0, 
    y: 0, 
    w: 100,
    h: 200
}
  • 字段详情:

x:

  • 类型: 整数类型
  • 描述: (必填项) 视频左上角x轴坐标

y:

  • 类型: 整数类型
  • 描述: (必填项) 视频左上角y轴坐标

w:

  • 类型: 整数类型
  • 描述: (必填项) 视频画面宽度

h:

  • 类型: 整数类型
  • 描述: (必填项) 视频画面高度

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.startRemoteView({
    userId: 'test002',
    rect: {
        x: 0,
        y: 0,
        w: api.winWidth / 4,
        h: api.winHeight / 4
    }
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#stopRemoteView

停止渲染远端数据

stopRemoteView({params}, function(ret, err))

params

userId:

  • 类型: 字符串类型
  • 描述: (必填项) 远端用户Id

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.stopRemoteView({
    userId: 'test002'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#openCamera

开启摄像头

openCamera({params}, function(ret, err))

params

isFront:

  • 类型: 布尔类型
  • 描述: (必填项) true表示开启前置摄像头,false表示开启后置摄像头

rect:

  • 类型: JSON对象
  • 描述: (必填项) 视频的位置和大小
  • 内部字段:
{
    x: 0, 
    y: 0, 
    w: 100,
    h: 200
}
  • 字段详情:

x:

  • 类型: 整数类型
  • 描述: (必填项) 视频左上角x轴坐标

y:

  • 类型: 整数类型
  • 描述: (必填项) 视频左上角y轴坐标

w:

  • 类型: 整数类型
  • 描述: (必填项) 视频画面宽度

h:

  • 类型: 整数类型
  • 描述: (必填项) 视频画面高度

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.openCamera({
    isFront: isFront,
    rect: {
        x: 0,
        y: 0,
        w: api.winWidth / 2,
        h: api.winHeight / 2
    }
}, function(ret) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#switchCamera

切换前后摄像头

switchCamera({params}, function(ret, err))

params

isFront:

  • 类型: 布尔类型
  • 描述: (必填项) true表示切换到前置摄像头,false表示切换到后置摄像头

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.switchCamera({
    isFront: true
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#closeCamera

关闭摄像头

closeCamera({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.closeCamera({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setMicMute

静音本地音频采集

setMicMute({params}, function(ret, err))

params

isMute:

  • 类型: 布尔类型
  • 描述: (必填项) true表示麦克风关闭,false表示麦克风打开

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.setMicMute({
    isMute: true
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setHandsFree

开启免提

setHandsFree({params}, function(ret, err))

params

isHandsFree:

  • 类型: 布尔类型
  • 描述: (必填项) true表示开启免提,false表示关闭免提

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.setHandsFree({
    isHandsFree: true
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#switchToAudio

切换为语音

switchToAudio({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

calling.switchToAudio({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

##事件回调

###通用事件回调

#onError

错误回调

说明:

SDK 不可恢复的错误,一定要监听,并分情况给用户适当的界面提示

{
    eventType: 'onError', 
    code: 12,
    msg: 'This is a error msg'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

code:

  • 类型: 整数类型
  • 描述: 错误码

msg

  • 类型: 字符串类型
  • 描述: 错误信息

###邀请方回调

#onReject

拒绝通话回调

{
    eventType: 'onReject',
    userId: 'test002'
}

仅邀请者收到通知,其他用户应使用 onUserEnter

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

userId:

  • 类型: 字符串类型
  • 描述: 拒绝用户的Id

#onNoResp

对方无回应回调。

{
    eventType: 'onNoResp',
    userId: 'test002'
}

仅邀请者受到通知,其他用户应使用 onUserEnter

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

userId:

  • 类型: 字符串类型
  • 描述: 拒绝用户的Id

#onLineBusy

通话忙线回调。

{
    eventType: 'onLineBusy',
    userId: 'test002'
}

仅邀请者收到通知,其他用户应使用 onUserEnter

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

userId:

  • 类型: 字符串类型
  • 描述: 拒绝用户的Id

###被邀请方回调

#onInvited

被邀请通话回调

{
    eventType: 'onInvited',
    sponsor: 'test002'
    userIdList: [
        'test001'
    ],
    isFromGroup: true,
    callType: 1
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

sponsor:

  • 类型: 字符串类型
  • 描述: 发起方的Id

userIdList:

  • 类型: JSON数组
  • 描述: 邀请Id列表

isFromGroup:

  • 类型: 布尔类型
  • 描述: 是否多人通话邀请

callType:

  • 类型: 整数类型
  • 描述: 通话类型,0表示未知,1表示视频,2表示语音

#onCallingCancel

当前通话被取消回调。接收方未处理请求,邀请方取消后会收到此回调

{
    eventType: 'onCallingCancel',
    userId: 'test002'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

userId:

  • 类型: 字符串类型
  • 描述: 取消用户的Id

#onCallingTimeOut

当前通话超时回调

{
    eventType: 'onCallingTimeOut'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

###通用回调

#onGroupCallInviteeListUpdate

群聊更新邀请列表回调

{
    eventType: 'onGroupCallInviteeListUpdate',
    userIdList: [
        'test002'
    ]
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

userIdList:

  • 类型: JSON数组
  • 描述: 邀请Id列表

#onUserEnter

用户进入通话回调

{
    eventType: 'onUserEnter',
    userId: 'test002'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

userId:

  • 类型: 字符串类型
  • 描述: 进入通话用户Id

#onUserLeave

用户离开通话回调

{
    eventType: 'onUserLeave',
    userId: 'test002'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

userId:

  • 类型: 字符串类型
  • 描述: 离开通话用户Id

#onUserAudioAvailable

用户是否开启音频上行回调

{
    eventType: 'onUserAudioAvailable',
    userId: 'test002',
    available: true
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

userId:

  • 类型: 字符串类型
  • 描述: 通话用户Id

available:

  • 类型: 布尔类型
  • 描述: 用户音频是否可用

#onUserVideoAvailable

用户是否开启视频上行回调。收到通知后,用户可调用 startRemoteView 渲染远端视频

{
    eventType: 'onUserVideoAvailable',
    userId: 'test002',
    available: true
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

userId:

  • 类型: 字符串类型
  • 描述: 通话用户Id

available:

  • 类型: 布尔类型
  • 描述: 用户音频是否可用

#onUserVoiceVolume

用户是否开启视频上行回调。收到通知后,用户可调用 startRemoteView 渲染远端视频

{
    eventType: 'onUserVoiceVolume',
    volumeList: [
        volumeInfo, 
        ...
    ]
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

volumeList:

  • 类型: JSON数组
  • 描述: 音量列表

volumeInfo:

  • 类型: JSON对象
  • 描述: 音量信息
  • 内部字段:
{
    userId: 'test002',
    volume: 10
}
  • 字段详情:

userId:

  • 类型: 字符串类型
  • 描述: 通话用户Id

volume:

  • 类型: 整数类型
  • 描述: 通话者的音量, 取值范围0 - 100

#onCallEnd

通话结束回调

{
    eventType: 'onCallEnd'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

##接口列表

###初始化与监听

接口列表 功能
init 初始化
setLiveRoomListener 设置监听器
removeLiveRoomListener 移除监听器
destroy 销毁

###登录与登出

接口列表 功能
login 登录
logout 登出
setSelfProfile 修改个人信息

###房间接口

接口列表 功能
createRoom 创建房间
destroyRoom 销毁房间
enterRoom 进入房间
exitRoom 离开房间
getRoomInfos 列表房间信息
getAnchorList 获取房间内主播列表
getAudienceList 获取房间内所有观众

###推拉流相关

接口列表 功能
startCameraPreview 开启视频本地预览
stopCameraPreview 停止本地视频采集及预览
startPublish 开始直播(推流)
stopPublish 停止直播(推流)
startPlay 播放远端视频画面
stopPlay 停止渲染远端视频画面

###主播和观众连麦

接口列表 功能
setLinkMicListener 设置连麦监听
requestJoinAnchor 观众请求连麦
responseJoinAnchor 主播处理连麦请求
kickoutJoinAnchor 主播踢除连麦观众

###主播跨房间 PK

接口列表 功能
setRoomPKListener 设置跨房PK监听
requestRoomPK 主播请求跨房PK
responseRoomPK 主播响应跨房PK请求
quitRoomPK 主动退出跨房PK

###音视频控制

接口列表 功能
switchCamera 切换前后摄像头
setMirror 设置是否镜像展示
muteLocalAudio 静音本地音频
muteRemoteAudio 静音远端音频
muteAllRemoteAudio 静音所有远端音频

###消息发送

接口列表 功能
sendRoomTextMsg 发送普通文本消息
sendRoomCustomMsg 发送自定义文本消息

##插件接口

#init

初始化

init({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

##代码示例

liveRoom.init({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setLiveRoomListener

设置监听器

setLiveRoomListener({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

or

{
    eventType: 'onAnchorEnter'
}
  • 字段详情:

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称, 详见 事件回调

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.setLiveRoomListener({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#removeLiveRoomListener

移除监听器

removeLiveRoomListener({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.removeLiveRoomListener({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#destroy

销毁

destroy({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.destroy({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#login

登录

login({params}, function(ret, err))

params

sdkAppId:

  • 类型: 整数类型
  • 描述: (必填项) 实时音视频应用Id

userId:

  • 类型: 字符串类型
  • 描述: (必填项) 当前用户的Id,当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)

userSig:

  • 类型: 字符串
  • 描述: (必填项) 用户签名,建议设定 7 天,能够有效规避 userSign 过期导致的 IM 收发消息失败、连麦失败等情况

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.login({
    sdkAppId: 140xxxx416,
    userId: 'test001',
    userSig: 'eJwtzExxxxxizphb3L40HQ'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#logout

登出

logout({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.logout({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setSelfProfile

修改个人信息

setSelfProfile({params}, function(ret, err))

params

userName:

  • 类型: 字符串类型
  • 描述: (可选项) 昵称

avatarUrl:

  • 类型: 字符串类型
  • 描述: (可选项) 头像地址

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.setSelfProfile({
    userName: 'userName001',
    avatarUrl: 'http://xxxx.myqcloud.com/xxxx.png'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#createRoom

创建房间(主播调用)

createRoom({params}, function(ret, err))

主播开播的正常调用流程如下:

  1. [主播] 调用 startCameraPreview() 打开摄像头预览,此时可以调整美颜参数;
  2. [主播] 调用 createRoom() 创建直播间,房间创建成功与否会通过 ret 通知给主播;
  3. [主播] 调用 starPublish() 开始推流。

params

roomId:

  • 类型: 整数类型
  • 描述: (必填项) 房间标识,需要由您分配并进行统一管理。多个 roomId 可以汇总成一个直播间列表,腾讯云暂不提供直播间列表的管理服务,请自行管理您的直播间列表

roomName:

  • 类型: 字符串类型
  • 描述: (必填项) 房间名称

coverUrl:

  • 类型: 字符串类型
  • 描述: (必填项) 房间封面地址

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.createRoom({
    roomId: 1,
    roomName: 'room001',
    coverUrl: 'https://xxxx.myqcloud.com/cover001.jpg'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#destroyRoom

销毁房间(主播调用)

destroyRoom({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.destroyRoom({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#enterRoom

进入房间(观众调用)

enterRoom({params}, function(ret, err))

观众观看直播的正常调用流程如下:

  1. 观众 向您的服务端获取最新的直播间列表,可能包含多个直播间的 roomId 和房间信息。
  2. 观众观众选择一个直播间,并调用 enterRoom 进入该房间。
  3. 观众调用 startPlay 并传入主播的 userId 开始播放。
  • 若直播间列表已包含主播端的 userId 信息,观众端可直接调用 startPlay 传入userId即可开始播放。
  • 若在进房前暂未获取主播的 userId,观众端在进房后会收到 setLiveRoomListener 中的 onAnchorEnter(userId) 的事件回调,该回调中携带主播的 userId 信息,再调用 startPlay 传入userId即可播放。

params

roomId:

  • 类型: 字符串类型
  • 描述: (必填项) 房间标识,需要由您分配并进行统一管理

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.enterRoom({
    roomId: 1001
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#exitRoom

离开房间

exitRoom({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.exitRoom({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#getRoomInfos

获取房间列表的详细信息, 房间信息是主播在创建 createRoom() 时通过 roomInfo 设置的

getRoomInfos({params}, function(ret, err))

说明:

如果房间列表和房间信息都由您自行管理,可忽略该函数

params

roomIdList:

  • 类型: 数组类型
  • 描述: (必填项) 房间号列表

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true, 	// 布尔类型, true表示操作成功
    roomList: [
        roomInfo,
        ...
    ]
}
  • 字段详情:

roomList:

  • 类型: JSON数组
  • 描述: 房间列表详细信息

roomInfo:

  • 类型: JSON对象
  • 描述: 房间信息,详见roomInfo

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.getRoomInfos({
    roomIdList: [
        1
    ]
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#getAnchorList

获取房间内所有的主播列表, enterRoom() 成功后调用才有效

getAnchorList({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true, 	// 布尔类型, true表示操作成功
    userList: [
        userInfo,
        ...
    ]
}
  • 字段详情:

userList:

  • 类型: JSON数组
  • 描述: 主播列表

userInfo:

  • 类型: JSON对象
  • 描述: 用户信息,详见userInfo

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.getAnchorList({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#getAudienceList

获取房间内所有的观众信息, enterRoom() 成功后调用才有效

getAudienceList({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true, 	// 布尔类型, true表示操作成功
    userList: [
        userInfo,
        ...
    ]
}
  • 字段详情:

userList:

  • 类型: JSON数组
  • 描述: 观众信息列表

userInfo:

  • 类型: JSON对象
  • 描述: 用户信息,详见userInfo

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.getAudienceList({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#startCameraPreview

开启本地视频的预览画面

startCameraPreview({params}, function(ret, err))

params

isFront:

  • 类型: 布尔类型
  • 描述: (必填项) true表示前置摄像头,false表示后置摄像头

rect:

  • 类型: JSON对象类型
  • 描述: (必填项) 视频显示的坐标和大小
  • 内部字段:
{
    x: 0, 
    y: 0, 
    w: 100,
    h: 200
}
  • 字段详情:

x:

  • 类型: 整数类型
  • 描述: (必填项) 视频左上角x轴坐标

y:

  • 类型: 整数类型
  • 描述: (必填项) 视频左上角y轴坐标

w:

  • 类型: 整数类型
  • 描述: (必填项) 视频画面宽度

h:

  • 类型: 整数类型
  • 描述: (必填项) 视频画面高度

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.startCameraPreview({
    isFront: true,
    rect: {
        x: 0,
        y: 0,
        w: api.winWidth / 2,
        h: api.winHeight / 2
    }
}, function(ret) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#stopCameraPreview

停止本地视频采集及预览

stopCameraPreview({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.stopCameraPreview({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#startPublish

开始直播(推流)

startPublish({params}, function(ret, err))

适用于以下场景:

  • 主播开播的时候调用
  • 观众开始连麦时调用

params

streamId:

  • 类型: 字符串类型
  • 描述: (必填项) 用于绑定直播 CDN 的 streamId,如果您希望观众通过直播 CDN 进行观看,需要指定当前主播的直播 streamId

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.startPublish({
    streamId: 'stream01'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#stopPublish

停止直播(推流)

stopPublish({}, function(ret, err))

适用于以下场景:

  • 主播结束直播时调用
  • 观众结束连麦时调用

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.stopPublish({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#startPlay

播放远端视频画面,可以在普通观看和连麦场景中调用

startPlay({params}, function(ret, err))

普通观看场景

  • 若直播间列表已包含主播端的 userId 信息,观众端可以直接在 enterRoom 成功后调用 startPlay 传入该userId播放主播的画面。
  • 若在进房前暂未获取主播的 userId,观众端在进房后会收到 setLiveRoomListener 中的 onAnchorEnter(userId) 的事件回调,该回调中携带主播的 userId 信息,再调用startPlay 传入userId即可播放主播的画面。

直播连麦场景

发起连麦后,主播会收到来自 setLiveRoomListener 中的 onAnchorEnter(userId) 回调,此时使用回调中的 userId 调用 startPlay 传入userId即可播放连麦画面。

params

userId:

  • 类型: 字符串类型
  • 描述: (必填项) 需要观看的用户Id

rect:

  • 类型: JSON对象类型
  • 描述: (必填项) 视频显示区域坐标和大小
  • 内部字段:
{
    x: 0, 
    y: 0, 
    w: 100,
    h: 200
}
  • 字段详情:

x:

  • 类型: 整数类型
  • 描述: (必填项) 视频左上角x轴坐标

y:

  • 类型: 整数类型
  • 描述: (必填项) 视频左上角y轴坐标

w:

  • 类型: 整数类型
  • 描述: (必填项) 视频画面宽度

h:

  • 类型: 整数类型
  • 描述: (必填项) 视频画面高度

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.startPlay({
    userId: 'test002',
    rect: {
        x: 0,
        y: 0,
        w: api.winWidth / 2,
        h: api.winHeight / 2
    }
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#stopPlay

停止渲染远端视频画面,需要再接收到onAnchorExit回调时,调用该接口

stopPlay({params}, function(ret, err))

params

userId:

  • 类型: 字符串类型
  • 描述: (必填项) 需要观看的用户Id

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.stopPlay({
    userId: 'test002'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setLinkMicListener

设置连麦监听

setLinkMicListener({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

or

{
    eventType: 'onSuccess',
    ...
}

eventType:

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.setLinkMicListener({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#requestJoinAnchor

观众请求连麦

requestJoinAnchor({params}, function(ret, err))

主播和观众的连麦流程如下:

  1. 观众使用 setLinkMicListener() 设置设置连麦事件监听,然后调用 requestJoinAnchor() 向主播发起连麦请求。
  2. 主播 会收到 setLiveRoom 的 onRequestJoinAnchor() 回调通知。
  3. 主播 调用 responseJoinAnchor() 决定是否接受来自观众的连麦请求。
  4. 观众 setLinkMicListener 监听会收到回调通知,该通知会携带主播的处理结果。
  5. 观众 如果请求被同意,则调用 startCameraPreview() 开启本地摄像头。
  6. 观众 调用 startPublish() 正式进入推流状态。
  7. 主播 一旦观众进入连麦状态,主播会收到 setLiveRoom 的 onAnchorEnter() 通知。
  8. 主播 主播调用 startPlay() 即可看到连麦观众的视频画面。
  9. 观众 如果直播间里已有其他观众正在跟主播连麦,新加入的连麦观众会收到 onAnchorEnter() 通知,调用 startPlay() 播放其他连麦者的视频画面。

params

reason:

  • 类型: 字符串类型
  • 描述: (必填项)连麦原因

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.requestJoinAnchor({
    reason: 'this is a reason'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#responseJoinAnchor

主播处理连麦请求

responseJoinAnchor({params}, function(ret, err))

主播在收到 setLiveRoomListener 的 onRequestJoinAnchor() 回调后,需要调用该接口来处理观众的连麦请求

params

userId:

  • 类型: 字符串类型
  • 描述: (必填项) 观众Id

isAgree:

  • 类型: 布尔类型
  • 描述: (必填项) true表示同意,false表示拒绝

reason:

  • 类型: 字符串类型
  • 描述: (必填项) 同意/拒绝连麦的原因描述

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.responseJoinAnchor({
    userId: 'test002',
    isAgree: true,
    reason: 'This is a reason'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#kickoutJoinAnchor

主播踢除连麦观众

kickoutJoinAnchor({params}, function(ret, err))

主播调用此接口踢除连麦观众后,被踢连麦观众会收到 setLiveRoomListener 的 onKickoutJoinAnchor() 回调通知

params

userId:

  • 类型: 字符串类型
  • 描述: (必填项) 连麦观众Id

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.kickoutJoinAnchor({
    userId: 'test002'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setRoomPKListener

设置跨房PK监听

setRoomPKListener({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

or

{
    eventType: 'onSuccess',
    ...
}

eventType:

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.setRoomPKListener({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#requestRoomPK

主播请求跨房PK

requestRoomPK({params}, function(ret, err))

params

roomId:

  • 类型: 字符串类型
  • 描述: (必填项) 被邀约房间Id

roomName:

  • 类型: 字符串类型
  • 描述: (必填项) 被邀约主播Id

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.requestRoomPK({
    roomId: 2,
    userId: 'test002'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#responseRoomPK

主播响应跨房PK请求

responseRoomPK({params}, function(ret, err))

主播和主播之间可以跨房间 PK,两个正在直播中的主播 A 和 B 之间的跨房 PK 流程如下:

  1. 主播 A 使用 setRoomPKListener() 设置跨房PK监听回调,然后调用 requestRoomPK() 向 主播 B 发起连麦请求。
  2. 主播 B 会收到 setLiveRoomListener 的 onRequestRoomPK() 回调通知。
  3. 主播 B 调用 responseRoomPK() 决定是否接受主播 A 的 PK 请求。
  4. 主播 B 如果接受主播 A 的请求,等待 setLiveRoomListener 的 onAnchorEnter() 通知,然后调用 startPlay() 来显示主播 A 的视频画面。
  5. 主播 A 的 setRoomPKListener 会收到回调通知,该通知会携带来自主播 B 的处理结果。
  6. 主播 A 如果请求被同意,等待 setLiveRoomListener 的 onAnchorEnter() 通知,然后调用 startPlay() 显示主播 B 的视频画面。

params

userId:

  • 类型: 字符串类型
  • 描述: (必填项) 发起PK请求的主播Id

isAgree:

  • 类型: 布尔类型
  • 描述: (必填项) true表示同意,false表示拒绝

reason:

  • 类型: 字符串类型
  • 描述: (必填项) 同意/拒绝PK的原因描述

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.responseRoomPK({
    userId: 'test002',
    isAgree: true,
    reason: 'This is a reason'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#quitRoomPK

退出跨房PK。PK 中的任何一个主播退出跨房 PK 状态后,另一个主播会收到 setLiveRoomListener 的 onQuitRoomPK 回调通知。

quitRoomPK({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.quitRoomPK({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#switchCamera

切换前后摄像头

switchCamera({}, function(ret, err))

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.switchCamera({}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setMirror

设置是否镜像展示

setMirror({params}, function(ret, err))

params

isMirror:

  • 类型: 布尔类型
  • 描述: (必填项) true表示开启, false表示关闭镜像

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.setMirror({
    isMirror: true
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#muteLocalAudio

静音本地音频

muteLocalAudio({params}, function(ret, err))

params

isMute:

  • 类型: 布尔类型
  • 描述: (必填项) true:开启静音;false:关闭静音

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.muteLocalAudio({
    isMute: true
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#muteRemoteAudio

静音远端音频

muteRemoteAudio({params}, function(ret, err))

params

isMute:

  • 类型: 布尔类型
  • 描述: (必填项) true表示开启静音,false表示关闭静音

userId:

  • 类型: 字符串类型
  • 描述: (必填项) 远端的用户Id

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.muteRemoteAudio({
    userId: 'test002',
    isMute: true
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#muteAllRemoteAudio

静音远端音频

muteAllRemoteAudio({params}, function(ret, err))

params

isMute:

  • 类型: 布尔类型
  • 描述: (必填项) true表示开启静音,false表示关闭静音

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.muteAllRemoteAudio({
    isMute: true
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#sendRoomTextMsg

在房间中广播文本消息

sendRoomTextMsg({params}, function(ret, err))

params

msg:

  • 类型: 字符串类型
  • 描述: (必填项) 文本消息

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.sendRoomTextMsg({
    msg: 'Hello world'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#sendRoomCustomMsg

发送自定义文本消息

sendRoomCustomMsg({params}, function(ret, err))

params

cmd:

  • 类型: 字符串类型
  • 描述: (必填项) 命令字,由开发者自定义,主要用于区分不同消息类型

msg:

  • 类型: 字符串类型
  • 描述: (必填项) 文本消息

callback

ret:

  • 类型: JSON对象
  • 内部字段:
{
    status: true 	// 布尔类型, true表示操作成功
}

err:

  • 类型: JSON对象
  • 内部字段:
{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

liveRoom.sendRoomCustomMsg({
    cmd: 'CMD_LIKE',
    msg: 'Hello world'
}, function(ret, err) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

##事件回调

###通用事件回调

#onError

错误回调

说明:

SDK 不可恢复的错误,一定要监听,并分情况给用户适当的界面提示。

{
    eventType: 'onError',
    code: 11,
    msg: 'this is a error msg'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

code:

  • 类型: 整数类型
  • 描述: 错误码

msg:

  • 类型: 字符串类型
  • 描述: 错误信息

#onWarning

警告回调

{
    eventType: 'onWarning',
    code: 11,
    msg: 'this is a error msg'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

code:

  • 类型: 整数类型
  • 描述: 错误码

msg:

  • 类型: 字符串类型
  • 描述: 错误信息

#onDebugLog

Log 回调

{
    eventType: 'onDebugLog', 
    log: 'xxxxx'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

log:

  • 类型: 字符串类型
  • 描述: 日志信息

###房间事件回调

#onRoomDestroy

房间被销毁的回调。主播退房时,房间内的所有用户都会收到此通知

{
    eventType: 'onRoomDestroy',
    roomId: 10
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

roomId:

  • 类型: 整数类型
  • 描述: 房间Id

#onRoomInfoChange

房间被销毁的回调。主播退房时,房间内的所有用户都会收到此通知

{
    eventType: 'onRoomInfoChange',
    roomInfo: {
        ...
    }
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

roomInfo:

  • 类型: JSON类型
  • 描述: 房间信息
  • 字段详情: roomInfo

#onRoomInfoChange

房间被销毁的回调。主播退房时,房间内的所有用户都会收到此通知

{
    eventType: 'onRoomInfoChange',
    roomInfo: {
        ...
    }
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

roomInfo:

  • 类型: JSON类型
  • 描述: 房间信息
  • 字段详情: roomInfo

###主播和观众进出事件回调

#onAnchorEnter

收到新主播进房通知。连麦观众和跨房 PK 主播进房后观众会收到新主播的进房事件,您可以调用 setLiveRoomListener 的 startPlay() 显示该主播的视频画面

{
    eventType: 'onAnchorEnter',
    userId: 'test001'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

userId:

  • 类型: 字符串类型
  • 描述: 新进房用户Id

#onAnchorExit

收到主播退房通知。房间内的主播(和连麦中的观众)会收到新主播的退房事件,您可以调用 TRTCLiveRoom 的 stopPlay() 关闭该主播的视频画面

{
    eventType: 'onAnchorExit',
    userId: 'test001'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

userId:

  • 类型: 字符串类型
  • 描述: 新进房用户Id

#onAudienceEnter

收到观众进房通知

{
    eventType: 'onAudienceEnter',
    userInfo: {
        ...
    }
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

userInfo:

  • 类型: JSON对象
  • 描述: 进房观众信息
  • 字段详情: userInfo

#onAudienceExit

收到观众进房通知

{
    eventType: 'onAudienceExit',
    userInfo: {
        ...
    }
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

userInfo:

  • 类型: JSON对象
  • 描述: 退房观众信息
  • 字段详情: userInfo

###主播和观众连麦事件回调

#onRequestJoinAnchor

主播收到观众连麦请求时的回调

{
    eventType: 'onRequestJoinAnchor',
    userInfo: {
        ...
    },
    reason: 'This is a reason',
    timeout: 10
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

userInfo:

  • 类型: JSON对象
  • 描述: 退房观众信息
  • 字段详情: userInfo

reason:

  • 类型: 字符串类型
  • 描述: 连麦原因描述

timeout:

  • 类型: 浮点数类型
  • 描述: 处理请求的超时时间

#onKickoutJoinAnchor

主播收到观众连麦请求时的回调

{
    eventType: 'onKickoutJoinAnchor'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

###主播 PK 事件回调

#onRequestRoomPK

收到请求跨房 PK 通知。主播收到其他房间主播的 PK 请求,如果同意 PK ,您需要等待 TRTCLiveRoomDelegate 的 onAnchorEnter() 通知,然后调用 startPlay() 来播放邀约主播的流

{
    eventType: 'onRequestRoomPK',
    userInfo: {
        ...
    },
    timeout: 10
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

userInfo:

  • 类型: JSON对象
  • 描述: 退房观众信息
  • 字段详情: userInfo

timeout:

  • 类型: 浮点数类型
  • 描述: 处理请求的超时时间

#onQuitRoomPK

收到请求跨房 PK 通知。主播收到其他房间主播的 PK 请求,如果同意 PK ,您需要等待 TRTCLiveRoomDelegate 的 onAnchorEnter() 通知,然后调用 startPlay() 来播放邀约主播的流

{
    eventType: 'onQuitRoomPK'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

###消息事件回调

#onRecvRoomTextMsg

收到文本消息

{
    eventType: 'onRecvRoomTextMsg',
    fromUser: {
        ...
    },
    message: 'This is a message'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

fromUser:

  • 类型: JSON对象
  • 描述: 发送者用户信息
  • 字段详情: userInfo

message:

  • 类型: 字符串类型
  • 描述: 文本消息

#onRecvRoomCustomMsg

收到自定义消息

{
    eventType: 'onRecvRoomCustomMsg',
    fromUser: {
        ...
    },
    command: 'This is a cmd',
    message: 'This is a message'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

fromUser:

  • 类型: JSON对象
  • 描述: 发送者用户信息
  • 字段详情: userInfo

cmd:

  • 类型: 字符串类型
  • 描述: 命令字,由开发者自定义,主要用于区分不同消息类型

message:

  • 类型: 字符串类型
  • 描述: 文本消息

###请求连麦事件回调

#onSuccess

连麦成功

{
    eventType: 'onSuccess',
    reason: 'This is a reason'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

reason:

  • 类型: 字符串类型
  • 描述: 请求连麦成功信息

#onFailure

连麦失败

{
    eventType: 'onFailure',
    reason: 'This is a reason'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

reason:

  • 类型: 字符串类型
  • 描述: 请求连麦失败信息

###请求跨房PK事件回调

#onSuccess

跨房PK成功

{
    eventType: 'onSuccess',
    reason: 'This is a reason'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

reason:

  • 类型: 字符串类型
  • 描述: 请求跨房PK成功信息

#onFailure

跨房PK失败

{
    eventType: 'onFailure',
    reason: 'This is a reason'
}

eventType:

  • 类型: 字符串类型
  • 描述: 事件名称

reason:

  • 类型: 字符串类型
  • 描述: 请求跨房PK失败信息

##数据结构

#roomInfo

房间信息

{
    coverUrl: 'http://xxx.xxx.xxx/xxx.png',
    memberCount: 5,
    ownerId: 'test001', 
    ownerName: 'userName001', 
    roomId: 'room001'
    roomName: 'roomName001',
    roomStatus: 0, 
    streamUrl: 'streamId001'
}

coverUrl:

  • 类型: 字符串类型
  • 描述: 房间封面图

memberCount:

  • 类型: 整数类型
  • 描述: 房间人数

ownerId:

  • 类型: 字符串类型
  • 描述: 房主id

ownerName:

  • 类型: 字符串类型
  • 描述: 房主昵称

roomId:

  • 类型: 字符串类型
  • 描述: 房间唯一标识

roomName:

  • 类型: 字符串类型
  • 描述: 房间名称

roomStatus:

  • 类型: 整数类型
  • 描述: 房间状态
  • 取值范围:
    • 0: 无
    • 1: 单人
    • 2: 连麦
    • 3: PK

streamUrl:

  • 类型: 字符串类型
  • 描述: cdn模式下的播放流地址

#userInfo

房间信息

{
    avatarUrl: 'http://xxx.xxx.xxx/xxx.png', 
    userId: 'test001', 
    userName: 'Lucy'
}

userId:

  • 类型: 字符串类型
  • 描述: 用户Id

userName:

  • 类型: 字符串类型
  • 描述: 用户昵称

avatarUrl:

  • 类型: 字符串类型
  • 描述: 用户头像

##更多功能

  • 背景音乐音效
  • 美颜支持
联系我们

获取内测功能和技术支持,请联系我们客户微信: ruanyunkeji006

是否仍需要帮助? 请保持联络!
最后更新于 2024/07/31