测试已测试 | ✓ |
Lang语言 | Obj-CObjective C |
许可证 | MIT |
发布最后发布 | 2014年12月 |
由 Elliot Chance 维护。
依赖 | |
CollectionFactory | >= 0 |
NSURL+QueryDictionary | >= 0 |
MBHMAC | >= 0 |
这是用 Objective-C 编写的,实现非官方 Google Music API 的一个实现。
使用 CocoaPods
pod 'GoogleMusicClient'
然后在您的源代码中包含它
#import <GoogleMusicClient.h>
GoogleMusicClient *client = [GoogleMusicClient new];
[client loginWithEmail:@"[email protected]" password:@"foobar" delegate:self];
delegate
是一个异步的 id<GoogleMusicClientDelegate>
,它将返回以下回调之一
- loginDidSucceed
- loginDidFail
- doesNotHaveInternet
封装客户端的协议提供了 - (BOOL)isLoggedIn
以允许您在任何时候检查连接状态。
客户端提供了以下设置,这些是同步的,但会在您下次连接之前进行缓存
- (NSDictionary *)profileSettings
- 以字典的形式获取所有配置文件设置。- (BOOL)desktopNotications
- 客户端是否启用了桌面通知。- (BOOL)useHTML5Audio
- 客户端是否希望使用 HTML5 音频而不是 Adobe Flash。- (BOOL)use5StarRatings
- 客户端是否希望使用“5星级评分”系统而不是点赞/踩。- (BOOL)viewTrackComments
- 客户端是否希望显示曲目评论。- (BOOL)chromecastFireplaceVisualizer
- 客户端是否使用 Chromecast 中的可视化程序。有各种状态标志可用 - 其中大部分都是相当直白的
- (BOOL)accountIsCanceled
- (BOOL)accountIsSubscription
- (BOOL)accountIsTrial
- (BOOL)accountIsSubscribedToNewsletter
- (NSInteger)accountMaximumAllowedTracks
- 这应该是正常付费账户的 20,000。- (NSDate *)accountExpireTime
您可以使用以下方式异步获取整个库
- (void)fetchAllTracksWithDelegate:(id<GoogleMusicLibraryParserDelegate>)delegate
delegate
将回调
- (void)didFinishReceivingTracks:(NSArray *)tracks
在 tracks
中的数组将包含 Track
对象。
以下元数据可用
- (NSString *)专辑
- (NSString *)专辑艺术URL
- (NSString *)专辑艺术家
- (NSString *)艺术家
- (NSUInteger)比特率
- (NSString *)作曲家
- (NSString *)注释
- (NSDate *)创建日期
- (NSUInteger)光盘编号
- (NSUInteger)光盘总数
- (NSTimeInterval)时长
- (NSString *)流派
- (NSString *)大尺寸专辑艺术URL
- (NSDate *)上次播放日期
- (NSString *)匹配ID
- (NSDate *)修改日期
- (NSArray *)原始内容
- (NSUInteger)播放次数
- (NSUInteger)评分
- (NSString *)商店ID
- (NSString *)轨道ID
- (NSString *)标题
- (NSUInteger)轨道编号
- (NSUInteger)轨道总数
- (enum TrackType)类型
- (NSUInteger)年份
- (NSURL *)streamUrl
函数在“Track
”类中提供,它将发出同步调用(轨道流URL不是随轨道提供的,它必须在之后获取)以获取流URL。此URL可以用于任何了解MP3流传输的媒体播放器。