HiFiVeSDK接入文档

2019-08-28  本文已影响0人  CGRect

二、SDK集成

2.1 系统支持

iOS8.0以上

2.2运行环境

建议使用XCode8.0以上版本进行编译。

2.3集成SDK

目前仅提供静态库接入方案。

2.3.1 Cocoapods集成
  1. 添加如下语句加入你的Podfile文件中。
pod 'HFVMusic'
  1. 执行pod install或者pod update后集成SDK到项目工程。
  2. 运行项目名.xcworkspace文件打开工程。
2.3.2 手动集成
  1. 在此下载HFVMusic,放入你的工程目录。

  2. 打开工程,依次选择TARGET -> General -> Link Frameworks With Libraries,添加 HFVMusic.frameworkStatus 设置为 Requied

    Target设置
  3. 此外,HFVMusic还依赖了一些三方库,开发者同样需要集成进项目中。

三方库 版本 描述
AFNetworking 3.2.1 网络通信
SAMKeychain 1.5.3 钥匙串管理
MJExtension 3.0.17 模型转换

三、SDK使用

3.1 日志输出

可通过设置是否为debug,来控制SDK相关信息打印

#ifdef DEBUG
    [HFVMusic setRunOnDebug:YES];
#else
    [HFVMusic setRunOnDebug:YES];
#endif
3.2 SDK初始化

建议在AppDelegate中导入#import <HFVMusic/HFVMusic.h>,调用如下API进行SDK初始化操作

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    [HFVMusic startAppId:@"APPID" InSecret:@"SECRET"];
    
    return YES;
}
3.3 用户初始化

当获取到用户信息或者房间信息之后,调用如下API,HFV平台将会为该用户创建空间

[HFVMusic setUserId:@"UserId" name:@"NAME" anchor:YES result:^(HFVAuthorizationModel * _Nonnull authorization) {
        
} error:^(NSError * _Nonnull error) {
        
}];

四、API列表

4.1 初始化SDK

需要在调用其他API之前初始化SDK,建议在AppDelegate中调用。

+ (void)startAppId:(NSString *)appId
          InSecret:(NSString *)secret;
参数 必填 描述
appId 开放平台申请appId
secret 开放平台申请secret
4.2 设置debug模式

开发者调用API时会打印相应信息辅助开发者开发,开发者可以选择是否关闭信息,建议在release模式关闭,以提高性能。

+ (void)setRunOnDebug:(BOOL)debug;
参数 必填 描述
debug YES:会进行日志输出,NO:不会进行日志输出
4.3 初始化用户

HFV平台将会为该用户创建空间。因SDK需要唯一标识作为userId,因此建议开发者使用自己用户的userId

+ (NSInteger)creatUser:(NSString *)userId
                  name:(NSString *)name
                anchor:(BOOL)isAnchor
                result:(void (^)(HFVSDKInfo *authorization))result
                 error:(void (^)(NSError *error))errorCall;
参数 必填 描述
userId 用户ID
name 用户名
isAnchor 是否是主播; YES-是, NO-否
错误码 错误描述 解决方案
- - -
4.4 检索主播歌单

musicId为歌曲加入歌单的序号,自增属性,新加入的比之前加入的更大。

+ (NSInteger)musicBiggerThan:(nullable NSString *)musicId
                        size:(nullable NSString *)size
                      userId:(NSString *)userId
                      roomId:(nullable NSString *)roomId
                 mediaAction:(NSString *)mediaAction
                      result:(void (^)(NSArray <HFVMusicInfo *>*musics))result
                       error:(void (^)(NSError *error))errorCall;
参数 必填 描述
musicId 指定歌曲的id
size 查询集合数量
userId 主播ID
roomId 房间ID
mediaAction 操作类型:K-k歌; P-听歌
错误码 错误描述 解决方案
- - -
+ (NSInteger)musicSmallerThan:(nullable NSString *)musicId
                         size:(nullable NSString *)size
                       userId:(NSString *)userId
                       roomId:(nullable NSString *)roomId
                  mediaAction:(NSString *)mediaAction
                       result:(void (^)(NSArray <HFVMusicInfo *>*musics))result
                        error:(void (^)(NSError *error))errorCall;
参数 必填 描述
musicId 指定歌曲的id
size 查询集合数量
userId 主播ID
roomId 房间ID
mediaAction 操作类型:K-k歌; P-听歌
错误码 错误描述 解决方案
- - -
4.5 检索主播歌单中歌曲数量

获取主播K歌列表和播放列表的统计信息

+ (NSInteger)musicCount:(NSString *)userId
                 result:(void (^)(HFVMusicCount *count))result
                  error:(void (^)(NSError *error))errorCall;
参数 必填 描述
userId 主播ID
错误码 错误描述 解决方案
- - -
4.6 将该歌曲添加入歌单

将指定歌曲加入主播的K歌列表和播放列表

+ (NSInteger)addToPlayList:(NSString *)userId
                    roomId:(nullable NSString *)roomId
                   musicNo:(NSString *)musicNo
               mediaAction:(NSString *)mediaAction
                    result:(void (^)(void))result
                     error:(void (^)(NSError *error))errorCall;
参数 必填 描述
userId 主播ID
roomId 房间ID
musicNo 歌曲ID
mediaAction 操作类型:K-k歌; P-听歌
错误码 错误描述 解决方案
10610 歌曲已在歌单 重新选择新歌曲
10611 请使用主播账号 检测应用初始化,是否主播anchor参数未生效
4.7 将该歌曲移出歌单

将指定歌曲移出主播的K歌列表和播放列表

+ (NSInteger)deleteFromPlayList:(NSString *)userId
                         roomId:(nullable NSString *)roomId
                        musicNo:(nullable NSString *)musicNo
                    mediaAction:(NSString *)mediaAction
                         result:(void (^)(void))result
                          error:(void (^)(NSError *error))errorCall;
参数 必填 描述
userId 主播ID
roomId 房间ID
musicNo 歌曲ID
mediaAction 操作类型:K-k歌; P-听歌
错误码 错误描述 解决方案
- - -
4.8 检索歌曲标签

获取资源库所有歌曲的标签分类。

+ (NSInteger)musicTags:(nullable NSString *)current
                  size:(nullable NSString *)size
                result:(void (^)(NSArray<HFVMusicTag *> *musics))result
                 error:(void (^)(NSError *error))errorCall;
参数 必填 描述
current 当前页 默认1
size 页大小 默认10,最大1000
错误码 错误描述 解决方案
- - -
4.9 根据标签检索歌曲集合

通过检索歌曲标签API获取的标签来检索该标签下方的所有歌曲。

+ (NSInteger)searchMusicByTag:(nullable NSString *)current
                         size:(nullable NSString *)size
                          tag:(NSString *)tag keyword:(nullable NSString *)keyword
                       result:(void (^)(NSArray <HFVMusicInfo *>*musics))result
                        error:(void (^)(NSError *error))errorCall;
参数 必填 描述
current 当前页 默认1
size 页大小 默认10,最大1000
tag 标签
keyword 关键词
错误码 错误描述 解决方案
- - -
4.10 检索歌曲资源

获取歌曲的原声、伴奏歌词url地址

+ (NSInteger)resource:(NSString *)userId
             userName:(NSString *)userName
               roomId:(nullable NSString *)roomId
              musicNo:(NSString *)musicNo
          mediaAction:(NSString *)mediaAction
               result:(void (^)(HFVMusicResource *resource))result
                error:(void (^)(NSError *error))errorCall;
参数 必填 描述
userId 主播ID
userName 主播名字
roomId 房间ID
musicNo 歌曲ID
mediaAction 操作类型:K-k歌; P-听歌
错误码 错误描述 解决方案
10611 请使用主播账号 检测应用初始化,是否主播anchor参数未生效
4.11 下载LRC资源

下载歌词lrc文件,文件编码格式UTF-8

+ (NSInteger)downLoadLRC:(NSURL *)remoteUrl
                      to:(NSURL *)localUrl
                  result:(void (^)(NSURL *filePath))result
                   error:(void (^)(NSError *error))errorCall;
参数 必填 描述
remoteUrl 端URL
localUrl 本地存放路径
错误码 错误描述 解决方案
- - -
4.12 推荐歌曲

推荐歌曲

+ (NSInteger)recommendMusic:(nullable NSString *)current
                       size:(nullable NSString *)size
                     result:(void (^)(NSArray <HFVMusicInfo *>*musics))result
                      error:(void (^)(NSError *error))errorCall;
参数 必填 描述
current 当前页 默认1
size 页大小 默认10,最大1000
错误码 错误描述 解决方案
- - -
4.13 取消任务

大部分API均有网络参与,某些场景开发者可能需要取消某一个API调用,可通过API返回的请求唯一标识来取消该API的调用

/**
 取消某个任务

 @param identifier 请求唯一标识
 */
+ (void)cancleTaskWithIdentifier:(NSUInteger)identifier;
参数 必填 描述
identifier 请求唯一标识
错误码 错误描述 解决方案
- - -

五、API状态码

所有API的公共错误码

错误码 错误描述 解决方案
10500 internal fail 重试
10504 parameter validation error 检测参数传值
10400 service error
10401 未登录(签名错误) 检测sign签名生成算法,是否正确
10602 应用账户不存在 检测输入appId和secret
10502 登录已超时,请重新登录 重新登录
10201 no data
10600 无效应用 请检测输入包名或应用配置参数
10201 非法包名 请检测输入包名

成功响应码

响应码 描述
10200 success

六、响应数据model

用户认证结果model

@interface HFVSDKInfo : HFVBaseModel

    
/**
 应用创建时间
 */
@property (nonatomic, copy) NSString * createTime;
    
/**
  logo 图标
 */
@property (nonatomic, copy) NSString * icon;
    
/**
 授权名称
 */
@property (nonatomic, copy) NSString * name;
    
/**
 应用版本
 */
@property (nonatomic, copy) NSString * releaseVersion;
    
/**
  系统版本
 */
@property (nonatomic, assign) NSInteger version;

@end

音乐基础信息model

@interface HFVMusicInfo : HFVBaseModel
    

/**
 专辑名
 */
@property (nonatomic, copy) NSString * albumName;
@property (nonatomic, assign) NSInteger bpm;
    
/**
 封面图
 */
@property (nonatomic, copy) NSString * coverUrl;
@property (nonatomic, copy) NSString * createTime;
    
/**
 时长
 */
@property (nonatomic, assign) NSInteger duration;
    
/**
 媒体操作类型:K-k歌; P-听歌
 */
@property (nonatomic, copy) NSString * mediaAction;
    
/**
 歌曲名
 */
@property (nonatomic, copy) NSString * musicName;
    
/**
 歌曲编号
 */
@property (nonatomic, copy) NSString * musicNo;
    
/**
 歌手
 */
@property (nonatomic, copy) NSString * musicSinger;
    
/**
 时间
 */
@property (nonatomic, copy) NSString * dayTime;
@property (nonatomic, assign) double price;
@property (nonatomic, assign) double size;

- (BOOL)isEqualToMusic:(HFVBaseMusicModel *)music;

@end

音乐资源model

@interface HFVMusicResource : HFVBaseModel

/**
 伴奏地址
 */
@property (nonatomic, copy) NSString * accompanyUrl;
    
/**
 歌词地址
 */
@property (nonatomic, copy) NSString * lyricUrl;
    
/**
 原唱地址
 */
@property (nonatomic, copy) NSString * majorUrl;
    
/**
 交易号
 */
@property (nonatomic, copy) NSString * outTradeNo;

@end

主播歌单统计model

@interface HFVMusicCount : HFVBaseModel

/**
 k歌数
 */
@property (nonatomic, assign) NSInteger knum;
    
/**
 听歌数
 */
@property (nonatomic, assign) NSInteger pnum;
    
/**
 总曲数
 */
@property (nonatomic, assign) NSInteger total;

@end

歌曲标签model

@interface HFVMusicTag : HFVBaseModel
    
/**
 标签名
 */
@property (nonatomic, copy) NSString * name;

@end
上一篇 下一篇

猜你喜欢

热点阅读