美文网首页
HiFiVeSDK接入文档

HiFiVeSDK接入文档

作者: CGRect | 来源:发表于2019-08-28 13:53 被阅读0次

二、SDK集成

2.1 系统支持

iOS8.0以上

2.2运行环境

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

2.3集成SDK

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

  • Cocoapods集成
  • 手动集成
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

相关文章

  • HiFiVeSDK接入文档

    二、SDK集成 2.1 系统支持 iOS8.0以上 2.2运行环境 建议使用XCode8.0以上版本进行编译。 2...

  • iOS第三方登录大全(下)

    Facebook、Twitter、Google+接入 Facebook接入 官方文档 接入文档 App平台和具体平...

  • 谷歌/穿山甲接入文档链接

    GoogleAdMob接入文档 穿山甲接入文档 ### 接入整合各个广告平台 接入多个平台的广告,虽然每个平台广告...

  • 360插件Replugin踩坑之路

    接入比较简单,只需按官方给出的文档即可 宿主接入指南 插件接入指南 文档都非常详细,在这我要说的是一些文档上面没有...

  • iOS 微信支付,提示支付签名验证失败

    记录一下之前接入微信支付遇到的天坑。 1. 按照文档接入 微信开发平台iOS接入文档[https://pay.w...

  • Android接入MapBox

    作者:Angki转载请注明 MapBox接入 MapBox的官方文档地址,插件地址。 大概的接入步骤(按照文档来就...

  • MobPush 推送集成攻略

    最近很多公司都需要接入Mobpush的推送这里有一点个人接入心得分享下。接入文档可以参考MobPush官方文档ht...

  • 2019-08-30

    商户对接文档(支付SDK)iOS端接入文档 SDK接入 1,将TLIMPaySDK文件夹拖入工程 如果引入的库和本...

  • SDK接入文档

    1 开发包说明 demo只能在真机上运行 2 开发环境配置 2.0 添加依赖包 添加sdk依赖包GameCat...

  • TinyOk接入文档

    TinyOK 轻量级okhttp请求库,okhttp接口使用方式,volley内存分配机制,并且有效避免内存分配溢...

网友评论

      本文标题:HiFiVeSDK接入文档

      本文链接:https://www.haomeiwen.com/subject/docguttx.html