本文为您介绍AUI Kits在线K歌房的API说明。
登录
该接口客户可按自身业务需求实现,包括token的生成算法也是可以自定义,不过要确保生成及检验token使用相同的算法。
Demo中的鉴权实现供参考,用户可自行调整鉴权策略。
使用说明
请求协议:http/https
请求Path:/login
是否需要授权:否
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
username | String | 是 | usernamexxx | 用户名 | |||
password | String | 是 | passwordxxxx | 密码 |
返回数据
名称 | 类型 | 示例值 | 描述 | ||||
code | Integer | 200 | 业务响应码。参考HTTP响应码 | ||||
expire | String | 2023-02-28T14:38:06+08:00 | 过期时间。使用UTC时间格式 | ||||
token | String | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9*** | 授权凭证。默认使用jwt生成 |
示例
请求示例
{
"username":"usernamexxx",
"password":"passwordxxxx"
}
正常返回示例
{
"code": 200,
"expire": "2023-02-28T14:38:06+08:00",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2Nzc1NjYyODYsImlkIjoieXl5eSIsIm9yaWdfaWF0IjoxNjc3NDc5ODg2fQ.xxxxxx"
}
获取新IM建连的token
参考文档:服务端集成
使用说明
请求协议:http/https
请求Path:/api/ktv/token
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
user_id | String | 是 | useridxxxx | 用户UserId,用户自定义,在AppId下单独唯一 | |||
role | String | 否 | admin | 角色,默认为空。为admin时,表示该用户可以调用管控接口。 |
返回数据
名称 | 类型 | 示例值 | 描述 | ||||
code | Integer | 200 | 业务响应码。参考HTTP响应码 | ||||
aliyun_im | app_id | String | 用户的AppID | ||||
app_sign | String | 服务器生成的加密串,包含接入域名等信息 | |||||
app_token | String | 登录鉴权 | |||||
auth.user_id | String | 要登录的用户的Id | |||||
auth.nonce | String | 格式:"AK-随机串", 最长64字节 | |||||
auth.timestamp | Long | 过期时间, 从1970到过期时间的秒数 | |||||
auth.role | String | 角色,为admin时,表示该用户可以调用管控接口 |
示例
请求示例
{
"user_id": "useridxxxx",
"role":"admin"
}
正常返回示例
{
"code": 200,
"aliyun_im":{
"appid":"xxxx",
"appsign":"xxxx",
"apptoken":"xxxxxxxxxxxxxxxxxx",
"auth":{
"userid":"xxxx",
"nonce":"xxxxx", // 可为空
"timestamp":xxxxx,
"role":"admin"
}
}
}
创建KTV房间
使用说明
请求协议:http/https
请求Path:/api/ktv/create
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
title | String | 是 | titlexxxx | 房间标题 | |||
notice | String | 否 | noticexxx | 房间公告 | |||
anchor | String | 是 | anchorxxxx | 房主userId | |||
anchor_nick | String | 否 | anchornickxxxx | 房主昵称 | |||
extends | String | 否 | {"xx":"xxx"} | 扩展字段,SON格式字符串 |
返回数据
名称 | 类型 | 示例值 | 描述 | ||||
code | Integer | 200 | 业务响应码。参考HTTP响应码 | ||||
id | String | ee487235-5f9b-4cb3-82ce-45c91c3xxxx | 房间Id | ||||
created_at | String | 2023-02-27T17:34:00.592750182+08:00 | 创建时间 | ||||
updated_at | String | 2023-02-27T17:34:00.592750182+08:00 | 修改时间 | ||||
title | String | titlexxx | 房间标题 | ||||
notice | String | noticexxx | 房间公告 | ||||
cover_url | String | 封面图。预留字段 | |||||
anchor_id | String | anchor_idxxx | 房主userId | ||||
anchor_nick | String | anchor_nickxxx | 房主昵称 | ||||
meetingInfo | String | {"xxx":"xxxx"} | 连麦信息。json字符串 | ||||
show_code | Integer | 65611075 | 房间号 | ||||
extends | String | {"xx":"xxx"} | 扩展字段 | ||||
status | Integer | 0 | 房间状态: 1:已开始 2:已停止 | ||||
chat_id | String | ee487235-5f9b-4cb3-82ce-45c91c3xxxx | IM群Id |
示例
请求示例
{
"title": "titlexxx",
"notice": "noticexxx",
"anchor":"房主userId",
"anchor_nick":"房主nick",
"extends":"{\"xx\":\"xxx\"}"
}
正常返回示例
{
"code": 200,
"anchor_id": "房主userId",
"show_code": 65611075,
"extends": "{\"xx\":\"xxx\"}",
"updated_at": "2024-03-14T20:42:59",
"created_at": "2024-03-14T20:42:59",
"meetingInfo": "{\"members\":[{\"index\":1,\"joined\":false,\"user_id\":\"\"},{\"index\":2,\"joined\":false,\"user_id\":\"\"},{\"index\":3,\"joined\":false,\"user_id\":\"\"},{\"index\":4,\"joined\":false,\"user_id\":\"\"},{\"index\":5,\"joined\":false,\"user_id\":\"\"},{\"index\":6,\"joined\":false,\"user_id\":\"\"},{\"index\":7,\"joined\":false,\"user_id\":\"\"},{\"index\":8,\"joined\":false,\"user_id\":\"\"}]}",
"id": "cfa4a59e90ab42cbaf708f218ad1f61d",
"anchor_nick": "房主nick",
"title": "互动KTV测试",
"chat_id": "cfa4a59e90ab42cbaf708f218ad1f61d",
"notice": "23232",
"status": 1
}
分页获取KTV房间列表
使用说明
请求协议:http/https
请求Path:/api/ktv/list
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
user_id | String | 否 | useridxxx | 用户UserId | |||
page_num | Integer | 是 | 1 | 页码,默认值:1 | |||
page_size | Integer | 是 | 10 | 单页显示数量,默认值:10。 |
返回数据
名称 | 类型 | 示例值 | 描述 | ||||
code | Integer | 200 | 业务响应码。参考HTTP响应码 | ||||
id | String | ee487235-5f9b-4cb3-82ce-45c91c3xxxx | 房间Id | ||||
created_at | String | 2023-02-27T17:34:00.592750182+08:00 | 创建时间 | ||||
updated_at | String | 2023-02-27T17:34:00.592750182+08:00 | 修改时间 | ||||
started_at | String | 2023-02-27T18:54:37+08:00 | 房间的开始时间 | ||||
stopped_at | String | 2023-02-27T19:25:37+08:00 | 房间的结束时间 | ||||
title | String | titlexxx | 房间标题 | ||||
notice | String | noticexxx | 房间公告 | ||||
cover_url | String | 封面图。预留字段 | |||||
anchor_id | String | anchor_idxxx | 房主userId | ||||
anchor_nick | String | anchor_nickxxx | 房主昵称 | ||||
meetingInfo | String | {"xxx":"xxxx"} | 连麦信息。json字符串 | ||||
show_code | Integer | 65611075 | 房间号 | ||||
metrics | jsonObject | 统计相关信息 | |||||
metrics.online_count | Long | 20 | 聊天室在线人数 | ||||
extends | String | {"xx":"xxx"} | 扩展字段 | ||||
status | Integer | 0 | 聊天室状态: 1:正常 2:解散 | ||||
chat_id | String | ee487235-5f9b-4cb3-82ce-45c91c3xxxx | IM群Id |
示例
请求示例
{
"page_size": 10,
"page_num":1,
"user_id": "useridxxxx"
}
正常返回示例
{
"rooms": [
{
"id": "08a5d321d5f74d72bcbd87c5e41a57f4",
"title": "hhh的房间",
"status": 1,
"created_at": "2024-03-14T21:06:52",
"updated_at": "2024-03-14T21:06:52",
"extends": "{\n \"anchor_avatar\" : \"https:\/\/img.alicdn.com\/imgextra\/i2\/O1CN01VYKjf81Z1savmhLOr_!!6000000003135-0-tps-174-174.jpg\"\n}",
"chat_id": "08a5d321d5f74d72bcbd87c5e41a57f4",
"anchor_id": "hhh",
"anchor_nick": "hhh",
"show_code": 32611075,
"metrics": {
"online_count": 0
}
},
{
"id": "cfa4a59e90ab42cbaf708f218ad1f61d",
"title": "互动聊天测试",
"status": 1,
"notice": "23232",
"meetingInfo": "{\"members\":[{\"index\":1,\"join_time\":1710420349667,\"joined\":true,\"user_id\":\"assd\"},{\"index\":2,\"join_time\":1710420408513,\"joined\":true,\"user_id\":\"33334\"},{\"extends\":\"{\\\"nick\\\":\\\"xx33xx\\\",\\\"ava\\\":\\\"bb333bb\\\"}\",\"index\":3,\"join_time\":1710421936486,\"joined\":true,\"user_id\":\"333310\"},{\"index\":4,\"join_time\":1710420417941,\"joined\":true,\"user_id\":\"33335\"},{\"index\":5,\"join_time\":1710420423408,\"joined\":true,\"user_id\":\"33336\"},{\"index\":6,\"join_time\":1710420428932,\"joined\":true,\"user_id\":\"33337\"},{\"index\":7,\"join_time\":1710420436877,\"joined\":true,\"user_id\":\"33338\"},{\"index\":8,\"join_time\":1710420441424,\"joined\":true,\"user_id\":\"33339\"}]}",
"created_at": "2024-03-14T20:42:59",
"updated_at": "2024-03-14T20:42:59",
"extends": "{\"xx\":\"xxx\"}",
"chat_id": "cfa4a59e90ab42cbaf708f218ad1f61d",
"anchor_id": "房主userId",
"anchor_nick": "房主nick",
"metrics": {
"online_count": 0
}
},
{
"id": "cd6a4f31f3ad4593924c4081ddb9aba0",
"title": "admin的房间",
"status": 1,
"created_at": "2024-03-14T19:24:29",
"updated_at": "2024-03-14T19:24:29",
"chat_id": "cd6a4f31f3ad4593924c4081ddb9aba0",
"anchor_id": "admin",
"anchor_nick": "admin",
"show_code": 1612375,
"metrics": {
"online_count": 0
}
},
{
"id": "25f5346e1e1342289ebdf6c1ff9281a2",
"title": "admin房间",
"status": 1,
"created_at": "2024-03-13T16:10:50",
"updated_at": "2024-03-13T16:10:50",
"chat_id": "25f5346e1e1342289ebdf6c1ff9281a2",
"anchor_id": "admin",
"anchor_nick": "admin",
"show_code": 1112375,
"metrics": {
"online_count": 0
}
}
],
"code": 200
}
获取单个聊天室
实现原理:参考/api/ktv/list实现。该接口也会返回已解散的房间信息
使用说明
请求协议:http/https
请求Path:/api/ktv/get
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
id | String | 是 | liveIdxxxx | 房间Id | |||
user_id | String | 否 | useridxxx | UserId |
返回数据
参考/api/ktv/list。只是将列表换为单个对象
示例
请求示例
{
"id": "675e6783-0bac-4990-b6da-5aa890535029",
"user_id": "Cedric8"
}
正常返回示例
{
"code": 200,
"anchor_id": "房主userId",
"created_at": "2024-03-14T20:42:59",
"title": "互动ktv测试",
"chat_id": "cfa4a59e90ab42cbaf708f218ad1f61d",
"extends": "{\"xx\":\"xxx\"}",
"updated_at": "2024-03-14T20:42:59",
"meetingInfo": "{\"members\":[{\"index\":1,\"join_time\":1710420349667,\"joined\":true,\"user_id\":\"assd\"},{\"index\":2,\"join_time\":1710420408513,\"joined\":true,\"user_id\":\"33334\"},{\"extends\":\"{\\\"nick\\\":\\\"xx33xx\\\",\\\"ava\\\":\\\"bb333bb\\\"}\",\"index\":3,\"join_time\":1710421936486,\"joined\":true,\"user_id\":\"333310\"},{\"index\":4,\"join_time\":1710420417941,\"joined\":true,\"user_id\":\"33335\"},{\"index\":5,\"join_time\":1710420423408,\"joined\":true,\"user_id\":\"33336\"},{\"index\":6,\"join_time\":1710420428932,\"joined\":true,\"user_id\":\"33337\"},{\"index\":7,\"join_time\":1710420436877,\"joined\":true,\"user_id\":\"33338\"},{\"index\":8,\"join_time\":1710420441424,\"joined\":true,\"user_id\":\"33339\"}]}",
"id": "cfa4a59e90ab42cbaf708f218ad1f61d",
"show_code": 232275,
"metrics": {
"online_count": 0
},
"anchor_nick": "房主nick",
"notice": "23232",
"status": 1
}
获取 RTC token
使用说明
请求协议:http/https
请求Path:/api/ktv/getRtcAuthToken
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
room_id | String | 是 | roomIdxxxx | 房间Id | |||
user_id | String | 是 | useridxxxx | 用户UserId,用户自定义,在AppId下单独唯一 |
返回数据
名称 | 类型 | 示例值 | 描述 | ||||
code | Integer | 200 | 业务响应码。参考HTTP响应码 | ||||
authToken | String | ee487235-5f9b-4cb3-82ce-45c91c3xxxx | rtc token | ||||
timestamp | Long | 过期时间, 单位:秒。默认24小时有效 |
示例
请求示例
{
"room_id": "675e6783-0bac-4990-b6da-5aa890535029",
"user_id": "useridxxxx"
}
正常返回示例
{
"code": 200,
"authToken": "xxxxx",
"timestamp": 12323XXXX
}
解散ktv房间
使用说明
请求协议:http/https
请求Path:/api/ktv/dismiss
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
id | String | 是 | liveIdxxxx | 聊天室Id | |||
user_id | String | 是 | useridxxxx | 用户UserId,用户自定义,在AppId下单独唯一 |
返回数据
名称 | 类型 | 示例值 | 描述 | |||||
success | bool | true | 是否成功 |
示例
请求示例
{
"id": "675e6783-0bac-4990-b6da-5aa890535029",
"user_id": "useridxxxx"
}
正常返回示例
{
"code": 200,
"success": true
}
上麦
使用说明
请求协议:http/https
请求Path:/api/ktv/joinMic
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
id | String | 是 | liveIdxxxx | 房间Id | |||
user_id | String | 是 | useridxxxx | 用户UserId,用户自定义,在AppId下单独唯一 | |||
index | Integer | 否 | 3 | 指定麦位,可不传。如果指定了麦位则尽量使用指定的麦位上麦,如果该麦位已有其他用户则选择可用的麦位上麦 | |||
extends | String | 否 | {"user_avatrar":"xxxx"} | 扩展信息。内容可用端自定义 |
返回数据
名称 | 类型 | 示例值 | 描述 | |||||
code | Integer | 200 | 业务响应码。参考HTTP响应码 | |||||
members | Array | 麦上信息 | ||||||
[]members.user_id | String | |||||||
[]members.joined | Boolean | true | true表示已上麦; false表示未上麦 | |||||
[]members.index | Integer | 3 | 麦位 | |||||
[]members.extends | String | {"user_avatrar":"xxxx"} | 扩展信息,json字符串。内容可用端自定义 | |||||
[]members.join_time | Long | 1710420349667 | 上麦时间 |
示例
请求示例
{
"id": "d34e834e029f44eb92db5868ee9316de",
"user_id": "bbb",
"extends":"{\"aaa\":\"bbb\"}"
}
正常返回示例
{
"code": 200,
"members": [
{
"user_id": "assd",
"joined": true,
"index": 1,
"join_time": 1710420349667
},
{
"user_id": "33334",
"joined": true,
"index": 2,
"join_time": 1710420408513
},
{
"extends": "{\"user_nick\":\"xx33xx\",\"user_avatrar\":\"bb333bb\"}",
"user_id": "333310",
"joined": true,
"index": 3,
"join_time": 1710421224316
},
{
"user_id": "33335",
"joined": true,
"index": 4,
"join_time": 1710420417941
},
{
"user_id": "33336",
"joined": true,
"index": 5,
"join_time": 1710420423408
},
{
"user_id": "33337",
"joined": true,
"index": 6,
"join_time": 1710420428932
},
{
"user_id": "33338",
"joined": true,
"index": 7,
"join_time": 1710420436877
},
{
"user_id": "33339",
"joined": true,
"index": 8,
"join_time": 1710420441424
}
]
}
异常说明:
如果返回包括reason, 则表示有业务异常。此时需要通过reason来判断异常原因。
reason = 1: 表示麦位已满
{
"reason": 1,
"code": 200,
"desc": "麦位已满"
}
reason = 2: 表示用户已经上麦
{
"reason": 2,
"code": 200,
"desc": "用户已经上麦"
}
下麦
使用说明
请求协议:http/https
请求Path:/api/ktv/leaveMic
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
id | String | 是 | liveIdxxxx | 聊天室Id | |||
user_id | String | 是 | useridxxxx | 用户UserId,用户自定义,在AppId下单独唯一 | |||
index | Integer | 是 | 3 | 指定要下麦的麦位 |
返回数据
名称 | 类型 | 示例值 | 描述 | |||||
success | Boolean | true | 是否成功 | |||||
members | Array | 麦上信息 | ||||||
[]members.user_id | String | useridxxxx | 用户UserId | |||||
[]members.joined | Boolean | true | true表示已上麦; false表示未上麦 | |||||
[]members.index | Integer | 3 | 麦位 | |||||
[]members.join_time | Long | 1710420349667 | 上麦时间 |
示例
请求示例
{
"id": "cfa4a59e90ab42cbaf708f218ad1f61d",
"user_id": "333310",
"index":3
}
正常返回示例
{
"code": 200,
"members": [
{
"user_id": "assd",
"joined": true,
"index": 1,
"join_time": 1710420349667
},
{
"user_id": "33334",
"joined": true,
"index": 2,
"join_time": 1710420408513
},
{
"extends": "",
"user_id": "",
"joined": false,
"index": 3
},
{
"user_id": "33335",
"joined": true,
"index": 4,
"join_time": 1710420417941
},
{
"user_id": "33336",
"joined": true,
"index": 5,
"join_time": 1710420423408
},
{
"user_id": "33337",
"joined": true,
"index": 6,
"join_time": 1710420428932
},
{
"user_id": "33338",
"joined": true,
"index": 7,
"join_time": 1710420436877
},
{
"user_id": "33339",
"joined": true,
"index": 8,
"join_time": 1710420441424
}
]
}
获取连麦信息
使用说明
请求协议:http/https
请求Path:/api/ktv/getMeetingInfo
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
id | String | 是 | liveIdxxxx | 聊天室Id |
返回数据
名称 | 类型 | 示例值 | 描述 | |||||
success | Boolean | true | 是否成功 | |||||
members | Array | 麦上信息 | ||||||
[]members.user_id | String | useridxxxx | 用户UserId | |||||
[]members.joined | Boolean | true | true表示已上麦; false表示未上麦 | |||||
[]members.index | Integer | 3 | 麦位 | |||||
[]members.join_time | Long | 1710420349667 | 上麦时间 |
示例
请求示例
{
"id": "cfa4a59e90ab42cbaf708f218ad1f61d"
}
正常返回示例
{
"code": 200,
"members": [
{
"user_id": "assd",
"joined": true,
"index": 1,
"join_time": 1710420349667
},
{
"user_id": "33334",
"joined": true,
"index": 2,
"join_time": 1710420408513
},
{
"extends": "",
"user_id": "",
"joined": false,
"index": 3
},
{
"user_id": "33335",
"joined": true,
"index": 4,
"join_time": 1710420417941
},
{
"user_id": "33336",
"joined": true,
"index": 5,
"join_time": 1710420423408
},
{
"user_id": "33337",
"joined": true,
"index": 6,
"join_time": 1710420428932
},
{
"user_id": "33338",
"joined": true,
"index": 7,
"join_time": 1710420436877
},
{
"user_id": "33339",
"joined": true,
"index": 8,
"join_time": 1710420441424
}
]
}
点歌
使用说明
请求协议:http/https
请求Path:/api/ktv/selectSong
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
user_id | String | 是 | useridxxxx | 点歌的userid | |||
song_id | String | 是 | songidxxx | 歌曲标识,由端提供 | |||
room_id | String | 是 | room_idxxxx | 房间id | |||
user_extends | String | 否 | {"user_avatrar":"xxxx"} | 点歌的用户的扩展信息。内容可用端自定义 | |||
song_extends | String | 否 | xxxx | 歌曲的扩展信息。内容可用端自定义 |
返回数据
返回正在播放及待播放的歌曲列表
名称 | 类型 | 示例值 | 描述 | |||||
success | Boolean | true | 是否成功 |
示例
请求示例
{
"user_id": "cfa4a59e90ab42cbaf708f218ad1f61d",
"song_id": "xxxxxx",
"room_id": "room_idxxx",
"user_extends": "{\"user_avatrar\":\"xxxx\"}",
"song_extends": "{\"xxxx\":\"xxxx\"}",
}
正常返回示例
{
"code": 200,
"success": true
}
异常说明:
如果返回包括reason, 则表示有业务异常。此时需要通过reason来判断异常原因。
reason = 1: 表示重复点歌
{
"reason": 1,
"code": 200,
"desc": "重复点歌"
}
播放歌曲
使用说明
请求协议:http/https
请求Path:/api/ktv/playSong
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
user_id | String | 否 | useridxxxx | 点歌的userid 仅在最后一首歌时播放完毕时可以为空,其他情况下会返回reason=3的业务异常响应 | |||
room_id | String | 是 | room_idxxxx | 房间id | |||
song_id | String | 否 | songidxxx | 歌曲标识,由端提供 song_id为空时代表最后一首歌播放完毕 | |||
operator | String | 是 | operatorxxx | 操作者userid |
返回数据
名称 | 类型 | 示例值 | 描述 | |||||
success | Boolean | true | 是否成功 | |||||
next_song_id | String | song_id1234562 | 下一个要播放的歌曲标识。可能为空,为空表示后面无播放歌曲 |
示例
请求示例
{
"user_id": "cfa4a59e90ab42cbaf708f218ad1f61d",
"room_id": "xxxxxx",
"song_id": "songidxxxx"
}
正常返回示例
{
"code": 200,
"next_song_id": "song_id1234562"
}
异常说明:
如果返回包括reason, 则表示有业务异常。此时需要通过reason来判断异常原因。
reason = 1: 表示无待播放歌曲
{
"reason": 1,
"code": 200,
"desc": "无待播放歌曲"
}
reason = 2: 表示歌曲不匹配
{
"reason": 2,
"code": 200,
"desc": "歌曲不匹配"
}
reason = 3: 表示无权限
{
"reason": 3,
"code": 200,
"desc": "无权限"
}
reason = 4:表示传入id为空,但列表中仍有待播放歌曲
{
"reason": 4,
"code": 200,
"desc": "播放歌曲id为空,但仍有待播放歌曲"
}
删歌
使用说明
请求协议:http/https
请求Path:/api/ktv/deleteSong
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
room_id | String | 是 | room_idxxxx | 房间id | |||
user_id | String | 是 | useridxxxx | 点歌的userid | |||
song_ids | String | 是 | song_id1,song_idx2 | 歌曲标识, 可批量删除,以逗号分隔 | |||
operator | String | 是 | operatorxxx | 操作者userid |
返回数据
名称 | 类型 | 示例值 | 描述 | |||||
success | Boolean | true | 是否成功 |
示例
请求示例
{
"user_id": "useridxxxx",
"room_id": "xxxxxx",
"song_ids": "songidxxxx,useridxxxx2",
"operator": "useridxxxx"
}
正常返回示例
{
"code": 200,
"success": true
}
异常说明:
如果返回包括reason, 则表示有业务异常。此时需要通过reason来判断异常原因。
reason = 1: 表示无此歌曲
{
"reason": 1,
"code": 200,
"desc": "无此歌曲"
}
reason = 2: 表示无权限
{
"reason": 2,
"code": 200,
"desc": "无权限"
}
置顶歌曲
使用说明
请求协议:http/https
请求Path:/api/ktv/pinSong
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
user_id | String | 是 | useridxxxx | 点歌的userid | |||
song_id | String | 是 | song_idxxxx | 歌曲标识 | |||
room_id | String | 是 | room_idxxxx | 房间id | |||
operator | String | 是 | operatorxxx | 操作者userid |
返回数据
名称 | 类型 | 示例值 | 描述 | |||||
success | Boolean | true | 是否成功 |
示例
请求示例
{
"user_id": "useridxxx",
"song_id": "xxxxxx",
"room_id": "room_idxxxxx",
"operator": "useridxxx"
}
正常返回示例
{
"code": 200,
"success": true
}
异常说明:
如果返回包括reason, 则表示有业务异常。此时需要通过reason来判断异常原因。
reason = 1: 表示无此歌曲
{
"reason": 1,
"code": 200,
"desc": "无此歌曲"
}
reason = 2: 表示无权限
{
"reason": 2,
"code": 200,
"desc": "无权限"
}
获取点歌列表
说明:该接口只返回正在播放及待播放的歌曲列表
使用说明
请求协议:http/https
请求Path:/api/ktv/listSongs
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
room_id | String | 是 | room_idxxxx | 房间id |
返回数据
名称 | 类型 | 示例值 | 描述 | |||||
success | Boolean | true | 是否成功 | |||||
songs | Array | 歌曲列表 | ||||||
[]songs.song_id | String | song_idxxxx | 歌曲标识 | |||||
[]songs.user_id | Integer | user_idxxxx | 点歌的user_id | |||||
[]songs.user_extends | String | {"user_avatrar":"xxxx"} | 点歌的用户信息 | |||||
[]songs.status | Integer | 1 | 歌曲的状态: 2: 正在播放 3: 待播放 | |||||
[]songs.song_extends | String | {"xxxx":"xxxx"} | 歌曲的额外信息,以JSON字符串返回 |
示例
请求示例
{
"room_id": "cfa4a59e90ab42cbaf708f218ad1f61d"
}
正常返回示例
{
"code": 200,
"songs": [
{
"user_id": "assd1",
"song_id": "xxxxxx",
"status": 2,
"user_extends": "xxxxxx"
"song_extends": "xxxxxx"
},
{
"user_id": "assd2",
"song_id": "xxxxxx",
"status": 2,
"user_extends": "xxxxxx"
"song_extends": "xxxxxx"
},
{
"user_id": "assd3",
"song_id": "xxxxxx",
"status": 3,
"info": "xxxxxx"
},
{
"user_id": "assd4",
"song_id": "xxxxxx",
"status": 3,
"user_extends": "xxxxxx"
"song_extends": "xxxxxx"
},
{
"user_id": "assd5",
"song_id": "xxxxxx",
"status": 3,
"user_extends": "xxxxxx"
"song_extends": "xxxxxx"
},
]
}
加入合唱
只能加入正在播放的歌曲
使用说明
请求协议:http/https
请求Path:/api/ktv/joinInSinging
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
user_id | String | 是 | useridxxxx | 加入合唱的user_id | |||
room_id | String | 是 | room_idxxxx | 房间id | |||
song_id | String | 是 | song_idxxxx | 歌曲标识 |
返回数据
名称 | 类型 | 示例值 | 描述 | |||||
success | Boolean | true | 是否成功 |
示例
请求示例
{
"room_id": "cfa4a59e90ab42cbaf708f218ad1f61d",
"user_id": "useridxxxxx",
"song_id": "songidxxxx"
}
正常返回示例
{
"code": 200,
"success": true
}
异常说明:
如果返回包括reason, 则表示有业务异常。此时需要通过reason来判断异常原因。
reason = 1: 表示无正在播放歌曲
{
"reason": 1,
"code": 200,
"desc": "无正在播放歌曲"
}
reason = 2: 表示歌曲不匹配
{
"reason": 2,
"code": 200,
"desc": "歌曲不匹配"
}
reason = 3: 表示无需重复加入
{
"reason": 2,
"code": 200,
"desc": "无需重复加入"
}
退出合唱
使用说明
请求协议:http/https
请求Path:/api/ktv/leaveSinging
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
user_id | String | 是 | useridxxxx | 加入合唱的user_id | |||
room_id | String | 是 | room_idxxxx | 房间id | |||
song_id | String | 是 | song_idxxxx | 歌曲标识 |
返回数据
名称 | 类型 | 示例值 | 描述 | |||||
success | Boolean | true | 是否成功 |
示例
请求示例
{
"room_id": "cfa4a59e90ab42cbaf708f218ad1f61d",
"user_id": "useridxxxxx",
"song_id": "songidxxxx"
}
正常返回示例
{
"code": 200,
"success": true
}
异常说明:
如果返回包括reason, 则表示有业务异常。此时需要通过reason来判断异常原因。
reason = 1: 表示无正在播放歌曲
{
"reason": 1,
"code": 200,
"desc": "无正在播放歌曲"
}
reason = 2: 表示歌曲不匹配
{
"reason": 2,
"code": 200,
"desc": "歌曲不匹配"
}
reason = 3: 表示未加入合唱
{
"reason": 2,
"code": 200,
"desc": "未加入合唱"
}
获取当前房间的合唱信息
使用说明
请求协议:http/https
请求Path:/api/ktv/getSinging
是否需要授权:是
请求Method:POST
请求ContentType:JSON
请求参数
名称 | 类型 | 是否必填 | 示例值 | 描述 | |||
room_id | String | 是 | room_idxxxx | 房间id | |||
song_id | String | 是 | song_idxxxx | 歌曲标识 |
返回数据
名称 | 类型 | 示例值 | 描述 | |||||
success | Boolean | true | 是否成功 |
示例
请求示例
{
"room_id": "cfa4a59e90ab42cbaf708f218ad1f61d"
}
正常返回示例
{
"code": 200,
"members": [
{
"user_id": "22222222",
"join_time": 1712907655333
},
{
"user_id": "22222223",
"join_time": 1712907683501
}
]
}
说明:主唱即为点歌的user_Id,不会展示在该列表中