二、SDK集成
2.1 系统支持
Android 5.0以上
minSdkVersion : 21
targetSdkVersion : 28
2.2运行环境
建议使用Android Studio 3.4 以上版本进行编译。
2.3集成SDK
目前仅提供arr包接入方案
2.3.1 手动集成SDK包
- 将SDK文件加入到libs中
- 在module的build.gradle中与android{}平级下加入
repositories {
flatDir {
dirs 'libs'
}
}
- 在module的build.gradle中的dependencies里加入
implementation(name: 'demo', ext:'aar')//注意这里加入的名字没有后缀名
- 同步后可以在External Libraries中查看新加入的包
2.3.2 引入第三方依赖包
因为本SDK需要第三方网络库支持,所以必须添加一下依赖,可根据项目需求本身进行版本选择
api HifiveDependencies["javax"]
api HifiveDependencies["rxKotlin"]
api HifiveDependencies["rxJava"]
api HifiveDependencies["rxAndroid"]
api HifiveDependencies["retrofit"]
api HifiveDependencies["retrofit-converter-gson"]
api HifiveDependencies["retrofit-adapter-rxjava2"]
api HifiveDependencies["okHttp"]
api HifiveDependencies["okHttp-logging-interceptor"]
三、SDK使用
3.1 日志输出
可通过设置是否为debug,来控制SDK相关信息打印
SDK默认开启debug模式,输出日志可在控制台进行查看。
3.2 SDK初始化
建议在应用一启动就初始化,例如Application中
HiFiveManager.Companion.start(Application context, String APP_ID,String SECRET );
3.3 用户初始化
当获取到用户信息或者房间信息之后,调用如下API,HFV平台将会为该用户创建空间
HiFiveManager.Companion.getInstance()).creditUser(Context context,Boolean isAnchor,String userId,String userName ,DataResponse response)
四 API文档
注意:如下api非必填参数中,如果开发者不想传参数时,应当传入null进行占位
注意:数据通过DataResponse接口返回,返回结果需强转成返回值形式后才能进行使用进行使用
4.1 请求响应回调
本方法是所有接口调用后统一返回数据的回调,接口里面包含了错误的信息跟请求的数据信息,具体模式如下:
interface DataResponse {
/**
* sdk返回的错误
*/
void errorMsg(String msg,int code)
/**
* sdk返回的数据
*/
void data(Object object )
}
参数 |
必填 |
描述 |
msg |
|
错误描述 |
code |
|
错误code |
object |
|
返回的数据(要强转成响应的Bean使用) |
4.2 SDK初始化
start(Application context, String APP_ID,String SECRET );
参数 |
必填 |
描述 |
context |
是 |
上下文 |
APP_ID |
是 |
APP_ID |
SECRET |
是 |
SECRET |
4.3 初始化用户
creditUser(Context context,Boolean isAnchor,String userId,String userName ,DataResponse response)
参数 |
必填 |
描述 |
context |
是 |
上下文 |
isAnchor |
是 |
是否主播:true-是; false-否 |
userId |
是 |
用户id |
userName |
是 |
用户名 |
response |
是 |
请求响应 |
返回值强转类型 |
返回形式 |
SdkInfo.class |
SdkInfo |
返回值 |
描述 |
createTime |
应用时间 |
icon |
logo 图标 |
name |
授权名称 |
releaseVersion |
应用版本 |
version |
系统版本 |
4.4 检索主播歌单
注意:歌单以升序排列
降序查询歌曲
musicBiggerThan(Context context ,int musicId,int size, String userId,String roomId,String mediaAction,DataResponse response)
参数 |
必填 |
描述 |
context |
是 |
上下文 |
musicId |
是 |
传入一个歌曲id,第一次默认值为 Integer.MAX_VALUE |
size |
是 |
查询数量 |
userId |
是 |
用户id |
roomId |
否 |
主播房间id |
mediaAction |
是 |
操作类型:K-k歌; P-听歌 |
response |
是 |
请求响应 |
返回值强转类型 |
返回形式 |
MusicInfo.class |
List<MusicInfo> |
返回值 |
描述 |
id |
歌单id |
albumName |
专辑名 |
bpm |
节拍/比特率 |
coverUrl |
封面图 |
createTime |
时间 |
duration |
时长 |
mediaAction |
操作类型 |
musicName |
音乐名 |
musicNo |
音乐编号 |
musicSinger |
歌手 |
price |
单价 |
size |
大小 |
升序查询歌曲
musicSmallerThan(Context context ,int musicId,int size, String userId,String roomId,String mediaAction,DataResponse response)
参数 |
必填 |
描述 |
context |
是 |
上下文 |
musicId |
是 |
传入一个歌曲id,第一次默认值为0 |
size |
是 |
查询数量 |
userId |
是 |
用户id |
roomId |
否 |
主播房间id |
mediaAction |
是 |
操作类型:K-k歌; P-听歌 |
response |
是 |
请求响应 |
返回值强转类型 |
返回形式 |
MusicInfo.class |
List<MusicInfo> |
返回值 |
描述 |
id |
歌单id |
albumName |
专辑名 |
bpm |
节拍/比特率 |
coverUrl |
封面图 |
createTime |
时间 |
duration |
时长 |
mediaAction |
操作类型 |
musicName |
音乐名 |
musicNo |
音乐编号 |
musicSinger |
歌手 |
price |
单价 |
size |
大小 |
4.5 检索主播歌单中歌曲数量
musicCount(Context context, String userId,DataResponse dataResponse)
参数 |
必填 |
描述 |
context |
是 |
上下文 |
userId |
是 |
用户id |
dataResponse |
是 |
结果响应 |
返回值强转类型 |
返回形式 |
MusicCount.class |
MusicCount |
返回值 |
描述 |
total |
总曲数 |
pnum |
听歌数 |
knum |
k歌数 |
4.6 将该歌曲添加入歌单
fun addToPlayList(
Context context,
String userId,
String roomId,
String musicNo,
String mediaAction,
DataResponse response
)
参数 |
必填 |
描述 |
context |
是 |
上下文 |
userId |
是 |
用户id |
roomId |
否 |
房间id |
musicNo |
是 |
歌曲唯一标志 |
mediaAction |
是 |
操作类型:K-k歌; P-听歌 |
response |
是 |
请求响应 |
业务错误码
错误码 |
错误描述 |
解决方案 |
10610 |
歌曲已在歌单 |
重新选择新歌曲 |
10611 |
请使用主播账号 |
检测应用初始化,是否主播anchor参数未生效 |
4.7 将该歌曲移出歌单
deleteFromPlayList(
Context context,
String musicNo,
String userId ,
String roomId:,
String mediaAction,
DataResponse response
)
参数 |
必填 |
描述 |
context |
是 |
上下文 |
userId |
是 |
用户id |
roomId |
否 |
房间id |
musicNo |
是 |
歌曲唯一标志 |
mediaAction |
否 |
操作类型:K-k歌; P-听歌 |
response |
是 |
请求响应 |
4.8 检索歌曲标签
musicTags( Context context,
int current,
int size,
DataResponse response)
参数 |
必填 |
描述 |
context |
是 |
上下文 |
current |
否 |
当前页 默认1 |
size |
否 |
页大小 默认10,最大1000 |
response |
是 |
请求响应 |
返回值强转类型 |
返回形式 |
MusicTag.class |
List<MusicTag> |
4.9 根据标签检索歌曲集合
searchMusicByTag(
Context context: ,
int current,
int size,
String tag,
String keyword,
DataResponse response
)
参数 |
必填 |
描述 |
context |
是 |
上下文 |
current |
否 |
当前页 默认1 |
size |
否 |
页大小 默认10,最大1000 |
tag |
是 |
标签 |
keyword |
否 |
关键字 |
response |
是 |
请求响应 |
返回值强转类型 |
返回形式 |
SearchMusicInfo.class |
List<SearchMusicInfo> |
返回值 |
描述 |
albumName |
专辑名 |
duration |
时长 |
mediaAction |
媒体操作类型:K-k歌; P-听歌 |
musicName |
歌曲名 |
musicNo |
歌曲编号 |
musicSinger |
歌手 |
coverUrl |
封面图 |
4.10 检索歌曲资源
resource(
Context context,
String musicNo,
String userId,
String userName,
String roomId,
String mediaAction,
DataResponse response
)
参数 |
必填 |
描述 |
context |
是 |
上下文 |
musicNo |
是 |
音乐id |
userId |
是 |
用户id |
userName |
是 |
用户名 |
roomId |
否 |
房间id |
mediaAction |
是 |
操作类型:K-k歌; P-听歌 |
response |
是 |
请求响应 |
返回值强转类型 |
返回形式 |
MusicResource.class |
MusicResource |
返回值 |
描述 |
accompanyUrl |
伴奏地址 |
lyricUrl |
歌词地址 |
majorUrl |
主版本地址 |
outTradeNo |
交易号 |
业务错误码
错误码 |
错误描述 |
解决方案 |
10611 |
请使用主播账号 |
检测应用初始化,是否主播anchor参数未生效 |
4.11 下载LRC资源
downLoadLRC(
Application context,
String lrc,
String path,
DataResponse dataResponse)
参数 |
必填 |
描述 |
context |
是 |
上下文 |
lrc |
是 |
下载地址 |
path |
是 |
本地缓存路径 |
response |
是 |
请求响应 |
4.12 推荐歌曲
recommendMusic(
Context context,
int current,
int size,
DataResponse response)
参数 |
必填 |
描述 |
context |
是 |
上下文 |
current |
否 |
当前页 |
size |
否 |
请求大小 |
response |
是 |
请求响应 |
返回值强转类型 |
返回形式 |
RecommendMusic.class |
List<RecommendMusic> |
返回值 |
描述 |
albumName |
专辑名 |
dayTime |
时间 |
mediaAction |
媒体操作类型 |
musicName |
音乐名 |
musicNo |
音乐id |
musicSinger |
歌手 |
五、API状态码
所有API的公共错误码
错误码 |
错误描述 |
解决方案 |
10500 |
internal fail |
重试 |
10504 |
parameter validation error |
检测参数传值 |
10400 |
service error |
|
10401 |
未登录(签名错误) |
检测sign签名生成算法,是否正确 |
10602 |
应用账户不存在 |
检测输入appId和secret |
10502 |
登录已超时,请重新登录 |
重新登录 |
10201 |
no data |
|
10600 |
无效应用 |
请检测输入包名或应用配置参数 |
10201 |
非法包名 |
请检测输入包名 |
成功响应码
网友评论