音乐服务 SDK

最近更新时间:2024-10-08 18:37:11

我的收藏

初始化SDK

获取实例

1. 自主品牌小程序中使用
npm install qcloud-iotexplorer-tme-sdk

import { TMESdkForMiniProgram } from 'qcloud-iotexplorer-tme-sdk';
// 注:appDevSdk为初始化后的实例
const tmeSdk = new TMESdkForMiniProgram(appDevSdk);
2. 自定义 H5 中使用
const tmeSdk = await window.h5PanelSdk.getTMESdk();

接口统一返回值

接口调用的返回值统一为 Promise<TMEResponse> 类型。
interface TMEResponse {
error_code: number;
error_msg: string;
data?: any;
}
调用成功:返回一个 resolved 的 Promise,其值为 TMEResponse 类型,error_code=0,data 为返回结果。
调用失败:返回一个 rejected 的 Promise,包含错误码(error_code)及提示信息(error_msg)。
属性名
描述
类型
error_code
错误码。
number
error_msg
错误信息。
string
data
响应数据。
object
错误码列表
错误码
说明
200001
参数错误。
200002
系统繁忙,如幂等接口并发调用等,通常由于用户并发操作造成。
200003
认证信息过期或错误,请重新登录。
200004
设备未激活。
200005
当前 sp 暂未支持此接口。
200006
系统错误,如内部调用超时等,由于服务内部异常导致。
200200
可直充剩余次数为0。
400000
登录授权失败。
400001
设备端超时无响应。
400002
调用 SDK 参数错误。

登录授权

用户设备登录授权

跳转酷狗音乐小程序授权,当再次返回 H5 或小程序时,Promise 状态改变。
接口定义
tmeSdk.login(deviceId: string) => Promise<TMEResponse>
参数说明
参数名
参数描述
类型
必填
deviceId
设备 Id。
string
返回值
返回一个 Promise<TMEResponse>

用户设备登出

原 token 将登出。
接口定义
tmeSdk.logout(deviceId: string) => Promise<TMEResponse>
参数说明
参数名
参数描述
类型
必填
deviceId
设备 ID。
string
返回值
返回一个 Promise<TMEResponse>

校验设备授权

接口定义
tmeSdk.checkDeviceAuth(deviceId: string) => Promise<TMEResponse>
参数说明
参数名
参数描述
类型
必填
deviceId
设备 ID。
string
返回值
返回一个 Promise<TMEResponse>

获取用户信息

接口定义
tmeSdk.getUserInfo(deviceId: string) => Promise<TMEResponse>
参数说明
参数名
参数描述
类型
必填
deviceId
设备 ID。
string
返回值
返回一个 Promise<TMEResponse>,其中 data 如下:
属性名
描述
类型
userid
用户 ID。
string
nick_name
用户昵称。
string
img
用户头像。
string
is_vip
是否 vip 。
0:否。
1:是。
enum: 01
vip_end_time
vip 有效期终止时间。
string
car_vip_end_time
车机会员有效期终止时间。
string
svip_end_time
豪 V 有效期终止时间。
string

播控部分

接口描述

调用播控 SDK,会下发物模型属性 +control_seq,需要设备上报相同的 control_seq。
若在超时范围内收到上报,视为下发播控成功,返回 resolved 状态的 Promise<TMEResponse>
若超时未收到上报,返回 rejected 状态的 Promise<TMEResponse>
超时设置可以通过 tmeSdk.config.timeout 来配置,默认值为10000,单位:毫秒(ms)。

通用播控接口

接口定义
tmeSdk.controlKugouDeviceData(deviceData, deviceId: string) => Promise<TMEResponse>
参数说明
参数名
参数描述
类型
必填
deviceData
设备物模型数据。
object
deviceId
设备 ID。
string
返回值
返回一个 Promise<TMEResponse>

播放

接口定义
tmeSdk.play(deviceId: string) => Promise<TMEResponse>
参数说明
参数名
参数描述
类型
必填
deviceId
设备 ID。
string
返回值
返回一个 Promise<TMEResponse>

暂停

接口定义
tmeSdk.pause(deviceId: string) => Promise<TMEResponse>
参数说明
参数名
参数描述
类型
必填
deviceId
设备 ID。
string
返回值
返回一个 Promise<TMEResponse>

上一首

接口定义
tmeSdk.preSong(deviceId: string) => Promise<TMEResponse>
参数说明
参数名
参数描述
类型
必填
deviceId
设备 ID。
string
返回值
返回一个 Promise<TMEResponse>

下一首

接口定义
tmeSdk.nextSong(deviceId: string) => Promise<TMEResponse>
参数说明
参数名
参数描述
类型
必填
deviceId
设备 ID。
string
返回值
返回一个 Promise<TMEResponse>

设置播放模式

接口定义
tmeSdk.setPlayMode(playMode: number, deviceId: string) => Promise<TMEResponse>
参数说明
参数名
参数描述
类型
必填
playMode
播放模式:
0:顺序播放 。
1:单曲循环 。
2:随机播放。
enum: 012
deviceId
设备 ID。
string
返回值
返回一个 Promise<TMEResponse>

设置音量

接口定义
tmeSdk.setVolume(volume: number, deviceId: string) => Promise<TMEResponse>
参数说明
参数名
参数描述
类型
必填
volume
音量:0-100之间。
number
deviceId
设备 ID。
string
返回值
返回一个Promise<TMEResponse>

设置播放进度

接口定义
tmeSdk.setPlayPosition(playPosition: number, deviceId: string) => Promise<TMEResponse>
参数说明
参数名
参数描述
类型
必填
playPosition
播放进度:单位:秒(s)。
number
deviceId
设备 ID。
string
返回值
返回一个 Promise<TMEResponse>

设置播放质量

接口定义
tmeSdk.setPlayQuality(recommendQuality: number, deviceId: string) => Promise<TMEResponse>
参数说明
参数名
参数描述
类型
必填
recommendQuality
播放质量:
0:标准 。
1:高清 。
2:无损。
enum: 012
deviceId
设备 ID。
string
返回值
返回一个 Promise<TMEResponse>

设置当前播放歌曲

接口定义
tmeSdk.playSong(songId: string, songIndex: string, newQueueType: string, newQueueId: string | number, deviceId: string) => Promise<TMEResponse>
参数说明
参数名
参数描述
类型
必填
songId
歌曲 ID。
string
songIndex
歌曲所在播放列表的位置,从0开始。
string
newQueueType
播放列表的类型: playlistnewSongsrecommendDailty
string
newQueueId
播放列表 ID(当类型为“每日推荐”时,不存在 id,传undefined)。
string | number
deviceId
设备 ID。
string
播放列表目前支持三种类型:歌单(playlist)、新歌首发(newSongs)、每日推荐(recommendDaily)。
返回值
返回一个 Promise<TMEResponse>

内容部分

拉取内容通用接口

请求酷狗 API 拉取内容通用接口。
接口定义
tmeSdk.requestTMEApi(action: string, params, deviceId: string) => Promise<TMEResponse>
参数说明
参数名
描述
类型
必填
action
接口 action。
string
params
请求参数,无请求参数时,传{}。
object
deviceId
设备 ID。
string
返回值
返回一个Promise<TMEResponse>
说明:
action、params 及 返回值 data 参考 音乐服务

获取设备当前播放歌曲

接口定义
tmeSdk.getCurrentPlaySong(deviceId: string) => Promise<TMEResponse>
参数说明
参数名
描述
类型
必填
deviceId
设备 ID。
string
返回值
返回一个 Promise<TMEResponse>,data 为歌曲信息。

获取设备当前播放列表

根据目前支持的播放类型(playType),拉取对应的歌单列表,并查出歌曲的详细信息。
接口定义
tmeSdk.getCurrentPlayQueue(deviceId: string) => Promise<TMEResponse>
参数说明
参数名
描述
类型
必填
deviceId
设备 ID。
string
返回值
返回一个 Promise<TMEResponse>
TMEResponse 中 data 如下:
属性名
描述
类型
playType
播放列表类型。
enum:playlistnewSongsrecommendDaily
queueId
当前播放列表 ID,根据 playType 对应 playlist_id、album_id、top_id。
string | number
total
列表中歌曲总数。
number
songs
歌曲数组,具体歌曲属性参考 TME 文档中 Song 属性。
Array[]

获取歌曲详细信息

接口定义
tmeSdk.getSongDetail(songId: string, deviceId: string) => Promise<TMEResponse>
通过调用 requestTMEApi,请求歌曲播放链接与歌曲信息,返回歌曲的详细信息。
参数说明
参数名
描述
类型
必填
songId
歌曲 ID。
string
deviceId
设备 ID。
string
返回值
返回一个 Promise<TMEResponse>,data 为歌曲信息。

获取歌单详细信息

接口定义
tmeSdk.getPlaylistDetail(action: string, params, deviceId: string) => Promise<TMEResponse>
通过调用 requestTMEApi,请求歌单列表与歌曲信息,丰富列表中的歌曲信息,返回歌单列表。
参数说明
参数名
描述
类型
必填
action
新歌首发(awesome_newsong)、每日推荐(awesome_everyday)、歌单歌曲(playlist_song)。
string
params
参考应用端 API > 音乐服务 中对应 API 的 KugouParams。
object
deviceId
设备 ID。
string
返回值
返回一个 Promise<TMEResponse>,data 为歌单列表。