tencentTrtcKaraoke

腾讯云在线K歌(KTV)

体验 KTV 的能力,包括低延时K歌、麦位管理、收发礼物、文字聊天等 TRTC 在 KTV 场景下的相关能力。支持以下功能:

  • 房主创建新的 Karaoke 房间开播,听众进入 Karaoke 房间收听/互动。
  • 房主可以管理点歌、将座位上的麦上主播踢下麦。
  • 房主还能对座位进行封禁,其他听众就不能再进行申请上麦了。
  • 听众可以申请上麦,变成麦上主播,上麦后可以点歌和唱歌,也可以随时下麦成为普通的听众。
  • 支持发送礼物和各种文本、自定义消息,自定义消息可用于实现弹幕、点赞等。

论坛示例

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

技术支持

音视频产品接入复杂,建议联系我们获取技术支持,微信号: ruanyunkeji006

接口列表

初始化与监听

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

登录与登出

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

房间管理

接口列表 功能
createRoom 创建房间
destroyRoom 销毁房间
enterRoom 进入房间
exitRoom 离开房间
getRoomInfoList 获取房间列表的详细信息
getUserInfoList 获取指定userId的用户信息

音乐播放

接口列表 功能
startPlayMusic 播放音乐
stopPlayMusic 停止播放音乐
pausePlayMusic 暂停正在播放的音乐
resumePlayMusic 恢复暂停过的音乐

麦位管理

接口列表 功能
enterSeat 主动上麦
leaveSeat 主动下麦
pickSeat 抱人上麦
kickSeat 踢人下麦
muteSeat 静音/解除静音某个麦位
closeSeat 封禁/解禁某个麦位

本地音频操作

接口列表 功能
startMicrophone 开启麦克风采集
stopMicrophone 停止麦克风采集
setAudioQuality 设置音质
muteLocalAudio 静音/取消静音本地的音频
setSpeaker 设置开启扬声器
setAudioCaptureVolume 设置麦克风采集音量
setAudioPlayoutVolume 设置播放音量
muteRemoteAudio 静音/解除静音指定成员
muteAllRemoteAudio 静音/解除静音所有成员
setVoiceEarMonitorEnable 开启/关闭耳返

邀请信令

接口列表 功能
sendInvitation 发送邀请
acceptInvitation 接受邀请
rejectInvitation 拒绝邀请
cancelInvitation 取消邀请

消息发送

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

插件接口

init

初始化

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

callback

ret:

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

or

err:

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

##代码示例

karaoke.init({}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setKaraokeListener

设置监听

setKaraokeListener({}, ret)

callback

ret:

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

or

{
    eventType: "onRoomInfoChange",
    ...
}

eventType:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.setKaraokeListener({}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#removeKaraokeListener

移除监听器

removeKaraokeListener({}, ret)

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.removeKaraokeListener({}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#destroy

销毁

destroy({}, ret)

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.destroy({}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#login

登录

login({params}, ret)

params

sdkAppId:

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

userId:

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

userSig:

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

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.login({
    sdkAppId: 140xxxx16,
    userId: 'test001',
    userSig: 'eJwtzxxxxxx1EQpo'
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#logout

登出

logout({}, ret)

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.logout({}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setSelfProfile

修改个人信息

setSelfProfile({params}, ret)

params

userName:

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

avatarUrl:

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

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.setSelfProfile({
    userName: 'test001',
    avatarUrl: 'http://xxx.xxx.xxxx/xxxx.png'
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#createRoom

创建房间(房主调用),若房间不存在,系统将自动创建一个新房间

createRoom({params}, ret)

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

  1. 房主调用 createRoom 创建新的 Karaoke 房间,此时传入房间 ID、上麦是否需要房主确认、麦位数等房间属性信息。
  2. 房主创建房间成功后,调用 enterSeat 进入座位。
  3. 房主收到组件的 onSeatListChange 麦位表变化事件通知,此时可以将麦位表变化刷新到 UI 界面上。
  4. 房主还会收到麦位表有成员进入的 onAnchorEnterSeat 的事件通知,此时会自动打开麦克风采集。

params

roomId:

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

roomParam:

  • 类型: JSON类型
  • 描述: (必填项) 房间信息,用于房间描述的信息。例如房间名称、麦位信息、封面信息等。如果需要麦位管理,必须要填入房间的麦位数。
  • 内部字段:
{
    roomName: 'roomName001',
    coverUrl: 'http://xxx.myqcloud.com/xxx.png',
    seatCount: 5, 
    seatInfoList: {
        seatInfo,
        ...
    }
}

roomName:

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

coverUrl:

  • 类型: 字符串类型
  • 描述: (必填项) 封面信息

seatCount:

  • 类型: 整数类型
  • 描述: (可选项) 麦位数量

seatInfoList:

  • 类型: JSON数组
  • 描述: (可选项) 麦位信息列表

seatInfo:

  • 类型: JSON对象
  • 描述: 麦位信息
  • 内部字段:
{
    userId: 'test001',
    mute: true,
    status: 0
}

userId:

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

mute:

  • 类型: 布尔类型
  • 描述: (可选项) 是否禁言

status:

  • 类型: 整数类型
  • 描述: (可选项) 用户状态

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.createRoom({
    roomId: 1,
    roomParam: {
        roomName: 'roomName001',
        coverUrl: 'https://tesxxxx1.cos.ap-guangzhou.myqcloud.com/cover001.jpg',
        seatCount: 5
    }
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#destroyRoom

销毁房间(房主调用)。房主在创建房间后,可以调用这个函数来销毁房间。

destroyRoom({}, ret)

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.destroyRoom({}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#enterRoom

进入房间(观众调用)

enterRoom({params}, ret)

听众进房收听的正常调用流程如下:

  1. 听众向您的服务端获取最新的 Karaoke 房间列表,可能包含多个语聊房间的 roomId 和房间信息。
  2. 听众选择一个 Karaoke 房间,调用 enterRoom 并传入房间号即可进入该房间。
  3. 进房后会收到组件的 onRoomInfoChange 房间属性变化事件通知,此时可以记录房间属性并做相应改变,例如 UI 展示房间名、记录上麦是否需要请求房主同意等。
  4. 进房后会收到组件的 onSeatListChange 麦位表变化事件通知,此时可以将麦位表变化刷新到 UI 界面上。
  5. 进房后还会收到麦位表有主播进入的 onAnchorEnterSeat 的事件通知。

params

roomId:

  • 类型: 整数类型
  • 描述: (必填项) 房间标识

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.enterRoom({
    roomId: 1,
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#exitRoom

离开房间

exitRoom({}, ret)

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.exitRoom({}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#getRoomInfoList

获取房间列表的详细信息,其中房间名称、房间封面是房主在创建 createRoom() 时通过 roomInfo 设置的。

getRoomInfoList({params}, ret)

说明:

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

params

roomIdList:

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

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.getRoomInfoList({
    roomIdList: [
        1
    ]
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#getUserInfoList

获取指定 userId 的用户信息

getUserInfoList({params}, ret)

params

userIdList:

  • 类型: JSON数组
  • 描述: (必填项) 需要获取的用户id列表,如果为空,则获取房间内所有人的信息

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.getUserInfoList({
    userIdList: [
        'test001'
    ]
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#startPlayMusic

播放音乐(上麦后调用)。

startPlayMusic({params}, ret)

说明:

播放音乐后,自身会收到 onMusicPrepareToPlay 的事件通知。 ?音乐播放中,房间内所有成员会不断收到 onMusicProgressUpdate 的事件通知。 ?音乐播放完成,自身会收到 onMusicCompletePlaying 的事件通知。

params

musicId:

  • 类型: 整数类型
  • 描述: (必填项) 音乐的id

url:

  • 类型: 字符串类型
  • 描述: (必填项) 音乐的绝对路径

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.startPlayMusic({
    musicId: 10,
    url: 'https://xxx.myqcloud.com/xxxx.mp3'
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#stopPlayMusic

停止播放音乐(播放音乐时调用)。

stopPlayMusic({}, ret)

说明:

停止播放后,会收到 onMusicCompletePlaying 的事件通知。

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.stopPlayMusic({}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#pausePlayMusic

暂停正在播放的音乐(播放音乐时调用)。

pausePlayMusic({}, ret)

说明:

onMusicProgressUpdate 的事件通知会暂停 ?不会收到 onMusicCompletePlaying 的事件通知。

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.pausePlayMusic({}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#resumePlayMusic

恢复暂停过的音乐(暂停后调用)。

resumePlayMusic({}, ret)

说明:

不会收到 onMusicPrepareToPlay 的事件通知。

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.resumePlayMusic({
    seatIndex: 0
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#enterSeat

主动上麦(听众端和房主均可调用)

enterSeat({}, ret)

说明:

上麦成功后,房间内所有成员会收到 onSeatListChange 和 onAnchorEnterSeat 的事件通知。

params

seatIndex:

  • 类型: 整数类型
  • 描述: (必填项) 需要上麦的麦位序号

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.enterSeat({
    seatIndex: 0
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#leaveSeat

主动下麦(主播调用)

leaveSeat({}, ret)

说明:

下麦成功后,房间内所有成员会收到 onSeatListChange 和 onAnchorLeaveSeat 的事件通知。

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.leaveSeat({}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#pickSeat

抱人上麦(房主调用)。

pickSeat({params}, ret)

调用该接口会立即修改麦位表。如果是房主需要听众同意,听众才会上麦的场景,可以先调用 sendInvitation 向听众申请,收到 onInvitationAccept后再调用该函数。

说明:

房主抱人上麦,房间内所有成员会收到 onSeatListChange 和 onAnchorEnterSeat 的事件通知。

params

seatIndex:

  • 类型: 整数类型
  • 描述: (必填项) 需要抱上麦的麦位序号

userId:

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

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.pickSeat({
    seatIndex: 1,
    userId: 'test002'
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#kickSeat

踢人下麦(房主调用)

kickSeat({params}, ret)

说明:

房主踢人下麦,房间内所有成员会收到 onSeatListChange 和 onAnchorLeaveSeat 的事件通知

params

seatIndex:

  • 类型: 整数类型
  • 描述: (必填项) 需要踢下麦的麦位序号

callback

ret:

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

or

{
    code: -911, 	// 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.kickSeat({
    seatIndex: 2
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#muteSeat

静音/解除静音某个麦位(房主调用)

muteSeat({params}, ret)

调用该接口会立即修改麦位表。对应 seatIndex 座位上的主播,会自动调用 muteAudio 进行静音/解禁。

说明:

静音/解除静音某个麦位,房间内所有成员会收到 onSeatListChange 和 onSeatMute 的事件通知。

params

seatIndex:

  • 类型: 整数类型
  • 描述: (必填项) 需要踢下麦的麦位序号

isMute:

  • 类型: 布尔类型
  • 描述: (必填项) true:静音对应麦位;false:解除静音对应麦位

callback

ret:

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

or

{
    code: -911, 	// 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.muteSeat({
    seatIndex: 2,
    isMute: true
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#closeSeat

封禁/解禁某个麦位(房主调用)

closeSeat({params}, ret)

调用该接口会立即修改麦位表。封禁对应 seatIndex 座位上的主播,会自动下麦。

说明:

房主封禁/解禁对应麦位,房间内所有成员会收到 onSeatListChange 和 onSeatClose 的事件通知。

params

seatIndex:

  • 类型: 整数类型
  • 描述: (必填项) 需要踢下麦的麦位序号

isClose:

  • 类型: 布尔类型
  • 描述: (必填项) true:封禁对应麦位; false:解封对应麦位

callback

ret:

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

or

{
    code: -911, 	// 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.closeSeat({
    seatIndex: 2
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#startMicrophone

开启麦克风采集

startMicrophone({}, ret)

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.startMicrophone({}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#stopMicrophone

停止麦克风采集

stopMicrophone({}, ret)

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.stopMicrophone({}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setAudioQuality

主播处理连麦请求

setAudioQuality({params}, ret)

params

quality:

  • 类型: 整数类型
  • 描述: (必填项) 音频质量
  • 取值范围:
    • 0: 流畅音质:采样率:16k;单声道;音频裸码率:16kbps;适合语音通话为主的场景,比如在线会议,语音通话;
    • 1: 默认音质:采样率:48k;单声道;音频裸码率:50kbps;SDK 默认的音频质量,如无特殊需求推荐选择之
    • 2: 高音质:采样率:48k;双声道 + 全频带;音频裸码率:128kbps;适合需要高保真传输音乐的场景,比如K歌、音乐直播等

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.setAudioQuality({
    quality: 0
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#muteLocalAudio

静音/取消静音本地的音频

muteLocalAudio({params}, ret)

params

isMute:

  • 类型: 布尔类型
  • 描述: (必填项) 静音/取消静音

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.muteLocalAudio({
    isMute: true
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setSpeaker

设置开启扬声器

setSpeaker({params}, ret)

params

isSpeaker:

  • 类型: 布尔类型
  • 描述: (必填项) true表示扬声器, false表示听筒

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.setSpeaker({
    isSpeaker: true
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setAudioCaptureVolume

设置麦克风采集音量

setAudioCaptureVolume({params}, ret)

params

volume:

  • 类型: 整数类型
  • 描述: (必填项)采集音量
  • 取值范围: 0 - 100
  • 默认值: 100

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.setAudioCaptureVolume({
    volume: 20
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setAudioPlayoutVolume

设置播放音量

setAudioPlayoutVolume({params}, ret)

params

volume:

  • 类型: 整数类型
  • 描述: (必填项) 播放音量
  • 取值范围: 0 - 100
  • 默认值: 100

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.setAudioPlayoutVolume({
    volume: 20
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#muteRemoteAudio

静音/解除静音指定成员

muteRemoteAudio({}, ret)

params

userId:

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

isMute:

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

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.muteRemoteAudio({
    userId: 'test001',
    isMute: true
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#muteAllRemoteAudio

静音/解除静音所有成员

muteAllRemoteAudio({params}, ret)

params

isMute:

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

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.muteAllRemoteAudio({
    isMute: true
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#setVoiceEarMonitorEnable

开启/关闭 耳返

setVoiceEarMonitorEnable({params}, ret)

params

enable:

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

callback

ret:

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

or

{
    code: -911, 	   // 整数类型, 错误码
    msg: '错误描述' 	// 字符串类型, 错误信息
}

示例代码

karaoke.setVoiceEarMonitorEnable({
    enable: true
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#sendInvitation

向用户发送邀请

sendInvitation({params}, ret)

params

cmd:

  • 类型: 字符串类型
  • 描述: (必填项) 业务自定义指令

userId:

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

content:

  • 类型: 字符串类型
  • 描述: (必填项) 邀请的内容

callback

ret:

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

inviteId:

  • 类型: 字符串类型
  • 描述: 邀请Id

or

{
    code: 100, 	      // 整数类型, 错误码
    msg: '参数为必填' 	// 字符串类型, 错误信息
}

示例代码

karaoke.sendInvitation({
    cmd: 'this is invitation cmd',
    userId: 'test002',
    content: 'this is content'
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#acceptInvitation

接受邀请

acceptInvitation({params}, ret)

params

inviteId:

  • 类型: 字符串类型
  • 描述: (必填项) 邀请Id

callback

ret:

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

or

{
    code: 100, 	     // 整数类型, 错误码
    msg: '参数为必填' 	// 字符串类型, 错误信息
}

示例代码

karaoke.acceptInvitation({
    inviteId: 'adjlja2ieoiq'
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#rejectInvitation

拒绝邀请

rejectInvitation({params}, ret)

params

inviteId:

  • 类型: 字符串类型
  • 描述: (必填项) 邀请Id

callback

ret:

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

or

{
    code: 100, 	// 整数类型, 错误码
    msg: '参数为必填' 	// 字符串类型, 错误信息
}

示例代码

karaoke.rejectInvitation({
    identifier: 'fdalkiiwemaxwq'
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#cancelInvitation

取消邀请

cancelInvitation({params}, ret)

params

inviteId:

  • 类型: 字符串类型
  • 描述: (必填项) 邀请Id

callback

ret:

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

or

{
    code: 100, 	// 整数类型, 错误码
    msg: '参数为必填' 	// 字符串类型, 错误信息
}

示例代码

karaoke.cancelInvitation({
    inviteId: 'lsdfskkwimn'
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#sendRoomTextMsg

在房间中广播文本消息,一般用于弹幕聊天

sendRoomTextMsg({params}, ret)

params

msg:

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

callback

ret:

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

or

{
    code: 100, 	// 整数类型, 错误码
    msg: '参数为必填' 	// 字符串类型, 错误信息
}

示例代码

karaoke.sendRoomTextMsg({
    msg: 'this is a message'
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

#sendRoomCustomMsg

发送自定义文本消息

sendRoomCustomMsg({params}, ret)

params

cmd:

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

msg:

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

callback

ret:

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

or

{
    code: 100, 	// 整数类型, 错误码
    msg: '参数为必填' 	// 字符串类型, 错误信息
}

示例代码

karaoke.sendRoomCustomMsg({
    cmd: 'this is a cmd',
    msg: 'this is a message'
}, ret => {
    console.log(ret);
});

可用性

iOS系统,Android系统

可提供1.0.0及更高版本

##事件回调

###通用事件回调

#onError

错误回调

{
    eventType: 'onError',
    code: 114,
    message: '这是错误消息'
}

说明:

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

eventType:

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

code:

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

message:

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

#onWarning

警告回调

{
    eventType: 'onWarning',
    code: 114,
    message: '这是警告消息'
}

eventType:

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

code:

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

message:

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

#onDebugLog

Log 回调

{
    eventType: 'onDebugLog',
    message: '这是日志信息'
}

eventType:

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

message:

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

###房间事件回调

#onRoomDestroy

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

{
    eventType: 'onRoomDestroy',
    roomId: 1234
}

eventType:

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

roomId:

  • 类型: 字符串类型
  • 描述: 房间Id

#onRoomInfoChange

进房成功后会回调该接口,roomInfo 中的信息在房主创建房间的时候传入

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

eventType:

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

roomInfo:

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

#onUserMicrophoneMute

用户麦克风是否静音回调,当用户调用muteLocalAudio,房间内的其他用户都会收到此通知。

{
    eventType: 'onUserMicrophoneMute',
    userId: 'test002',
    mute: false
}

eventType:

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

userId:

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

mute:

  • 类型: 布尔类型
  • 描述: 是否经营

#onUserVolumeUpdate

启用音量大小提示,会通知每个成员的音量大小

{
    eventType: 'onUserVolumeUpdate',
    userVolumeList: [
        volumeInfo,
        ...
    ],
    totalVolume: 80
}

eventType:

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

userVolumeList:

  • 类型: JSON数组
  • 描述: 各个用户音量信息

volumeInfo:

  • 类型: JSON对象
  • 描述: 音量信息,详见volumeInfo

totalVolume:

  • 类型: 整数类型
  • 描述: 整体音量信息

###麦位回调

#onSeatListChange

全量的麦位列表变化,包含了整个麦位表。

{
    eventType: 'onSeatListChange',
    seatInfoList: [
        seatInfo,
        ...
    ]
}

eventType:

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

seatInfoList:

  • 类型: JSON数组
  • 描述: 全量的麦位信息列表

seatInfo:

  • 类型: JSON对象
  • 描述: 麦位置信息,详见 seatInfo

#onAnchorEnterSeat

有成员上麦(主动上麦/房主抱人上麦)

{
    eventType: 'onAnchorEnterSeat',
    index: 1,
    userInfo: {
        ...
    }
}

eventType:

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

index:

  • 类型: 整数类型
  • 描述: 成员上麦的麦位

userInfo:

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

#onAnchorLeaveSeat

有成员下麦(主动下麦/房主踢人下麦)

{
    eventType: 'onAnchorLeaveSeat',
    index: 1,
    userInfo: {
        ...
    }
}

eventType:

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

index:

  • 类型: 整数类型
  • 描述: 成员上麦的麦位

userInfo:

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

#onSeatMute

房主禁麦

{
    eventType: 'onSeatMute',
    index: 2,
    isMute: true
}

eventType:

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

index:

  • 类型: 整数类型
  • 描述: 成员上麦的麦位

isMute:

  • 类型: 布尔类型
  • 描述: true表示静音麦位, false表示解除静音

#onSeatClose

房主封麦

{
    eventType: 'onSeatClose',
    index: 2,
    isClose: true
}

eventType:

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

index:

  • 类型: 整数类型
  • 描述: 成员上麦的麦位

isMute:

  • 类型: 布尔类型
  • 描述: true:封禁麦位; false: 解禁麦位

###听众进出事件回调

#onAudienceEnter

收到听众进房通知

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

eventType:

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

userInfo:

  • 类型: JSON对象
  • 描述: 进房听众信息, 详见userInfo

#onAudienceExit

收到听众退房通知

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

eventType:

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

userInfo:

  • 类型: JSON对象
  • 描述: 退房听众信息,详见userInfo

###消息事件回调

#onRecvRoomTextMsg

收到文本消息

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

eventType:

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

message:

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

userInfo:

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

#onRecvRoomCustomMsg

收到自定义消息

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

eventType:

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

cmd:

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

message:

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

userInfo:

  • 类型: JSON对象
  • 描述: 发送者用户信息

###信令事件回调

#onReceiveNewInvitation

收到新的邀请请求

{
    eventType: 'onReceiveNewInvitation',
    inviteId: 'klwi2exjkmxx', 
    inviter: 'test002', 
    cmd: 'This is a cmd',
    content: 'This is content'
}

eventType:

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

inviteId:

  • 类型: 字符串类型
  • 描述: 邀请Id

inviter:

  • 类型: 字符串类型
  • 描述: 邀请人的用户Id

cmd:

  • 类型: 字符串类型
  • 描述: 业务指定的命令字,由开发者自定义

content:

  • 类型: 字符串类型
  • 描述: 业务指定的内容

#onInviteeAccepted

被邀请者接受邀请

{
    eventType: 'onInviteeAccepted',
    inviteId: 'klsizmw12dsl',
    invitee: 'test001'
}

eventType:

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

inviteId:

  • 类型: 字符串类型
  • 描述: 邀请Id

invitee:

  • 类型: 字符串类型
  • 描述: 被邀请人的用户Id

#onInviteeRejected

被邀请者拒绝邀请

{
    eventType: 'onInviteeRejected',
    inviteId: 'klsizmw12dsl',
    invitee: 'test001'
}

eventType:

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

inviteId:

  • 类型: 字符串类型
  • 描述: 邀请Id

invitee:

  • 类型: 字符串类型
  • 描述: 被邀请人的用户Id

#onInvitationCancelled

邀请人取消邀请

{
    eventType: 'onInvitationCancelled',
    inviteId: 'klsizmw12dsl',
    inviter: 'test002'
}

eventType:

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

inviteId:

  • 类型: 字符串类型
  • 描述: 邀请Id

inviter:

  • 类型: 字符串类型
  • 描述: 邀请人的用户Id

###音乐播放状态回调

#onMusicPrepareToPlay

准备播放音乐的回调

{
    eventType: 'onMusicPrepareToPlay',
    musicId: 10
}

eventType:

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

musicId:

  • 类型: 整数类型
  • 描述: 播放时传入的 musicId

#onMusicProgressUpdate

歌曲播放进度的回调

{
    eventType: 'onMusicProgressUpdate',
    musicId: 10,
    progress: 100,
    total: 10000
}

eventType:

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

musicId:

  • 类型: 整数类型
  • 描述: 播放时传入的 musicId

progress:

  • 类型: 整数类型
  • 描述: 当前播放时间,单位: ms

total:

  • 类型: 整数类型
  • 描述: 总时间,单位: ms

#onMusicCompletePlaying

播放完成音乐的回调

{
    eventType: 'onMusicProgressUpdate',
    musicId: 10
}

eventType:

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

musicId:

  • 类型: 整数类型
  • 描述: 播放时传入的 musicId

##数据结构

#roomInfo

房间信息

{
    roomId: '1234',
    roomName: 'This is room name',
    coverUrl: 'This is cover url',
    memberCount: 6,
    ownerId: 'test001',
    ownerName: 'Lucy',
    needRequest: true
}

roomId:

  • 类型: 整数类型
  • 描述: 房间唯一标识

roomName:

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

coverUrl:

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

ownerId:

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

ownerName:

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

memberCount:

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

needRequest:

  • 类型: 布尔类型
  • 描述: 是否需要房主确认上麦

#userInfo

用户信息

{
    userId: 'test002',
    userName: 'Lucy',
    userAvatar: 'http://xxx.xxx.xxx/xxx.png',
    mute: true
}

userId:

  • 类型: 字符串类型
  • 描述: 用户唯一标识

userName:

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

userAvatar:

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

mute:

  • 类型: 布尔类型
  • 描述: 静音状态

#seatInfo

麦位信息

{
    userId: 'test002',
    status: 0,
    mute: true
}

userId:

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

status:

  • 类型: 整数类型
  • 描述: 用户状态

mute:

  • 类型: 布尔类型
  • 描述: 座位是否禁言

#volumeInfo

音量信息

{
    userId: 'test002',
    volume: 10
}

userId:

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

volume:

  • 类型: 整数类型
  • 描述: 音量大小

##更多功能

音视频产品复杂,您可以联系我们技术支持,微信号: ruanyunkeji006

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