Apple Music(应用内打开Apple Music)

前言.我要讲的App Music是StoreKit框架下的Apple Music.我可没那么多闲心去讲Apple Music应用怎么用…

首先,这是一个可以让用户去订阅Apple Music与提供对Apple Music库访问的框架(PS.国内用的人挺少的).

1.权限.

是的.类比于相册应用.既然是访问App的原生应用.那么就应该需要权限

info.plist中加入以下字段:

Privacy - Media Library Usage Description(主体是:NSAppleMusicUsageDescription字段).然后写上一些说明就OK.

2.请求权限

请求权限是通过SKCloudServiceController类来呼出的

+ (SKCloudServiceAuthorizationStatus)authorizationStatus;
+ (void)requestAuthorization:(void(^)(SKCloudServiceAuthorizationStatus status))handler;

上面一个方法来拿当前的授权状态.下面的一个既可以请求也可以获取状态

3.请求功能.

当位移枚举capabilities中含有SKCloudServiceCapabilityMusicCatalogSubscriptionEligible以及不含SKCloudServiceCapabilityMusicCatalogPlayback时就可以呼出了

[[[SKCloudServiceController alloc] init] requestCapabilitiesWithCompletionHandler:^(SKCloudServiceCapability capabilities, NSError * _Nullable error) {
	if (((capabilities&SKCloudServiceCapabilityMusicCatalogPlayback)!=SKCloudServiceCapabilityMusicCatalogPlayback)) {
		// 呼出Apple Music        
	}
}];

4.Apple Music的呼出

用代理方法的话需要遵循<SKCloudServiceSetupViewControllerDelegate>

SKCloudServiceSetupViewController *vc = [[SKCloudServiceSetupViewController alloc] init];
vc.delegate = self;
[vc loadWithOptions:@{SKCloudServiceSetupOptionsActionKey: SKCloudServiceSetupActionSubscribe} completionHandler:^(BOOL result, NSError * _Nullable error) {
}];
[self presentViewController:vc animated:YES completion:nil];

代理方法(这个VC会自动dismiss)

/// Sent when the view controller was dismissed.
- (void)cloudServiceSetupViewControllerDidDismiss:(SKCloudServiceSetupViewController *)cloudServiceSetupViewController __TVOS_PROHIBITED NS_AVAILABLE_IOS(10_1) {

}
枚举介绍
SKCloudServiceAuthorizationStatus: 

typedef NS_ENUM(NSInteger, SKCloudServiceAuthorizationStatus) {
	/// 不确定
    SKCloudServiceAuthorizationStatusNotDetermined,
    /// 拒绝
    SKCloudServiceAuthorizationStatusDenied,
    /// 限制(可能开了限制模式)
    SKCloudServiceAuthorizationStatusRestricted,
    /// 已认证(有权限)
    SKCloudServiceAuthorizationStatusAuthorized,
} NS_ENUM_AVAILABLE_IOS(9_3);
位移枚举
typedef NS_OPTIONS(NSUInteger, SKCloudServiceCapability) {
	/// 该设备不允许播放苹果音乐内容或向音乐库添加曲目。
    SKCloudServiceCapabilityNone                           = 0,
    /// 该设备允许播放苹果音乐目录的曲目。
    SKCloudServiceCapabilityMusicCatalogPlayback           = 1 << 0,
    /// 该设备允许订阅苹果音乐目录。
    SKCloudServiceCapabilityMusicCatalogSubscriptionEligible    NS_ENUM_AVAILABLE_IOS(10_1)  = 1 << 1,
    /// 该设备允许将曲目添加到用户的音乐库中。
    SKCloudServiceCapabilityAddToCloudMusicLibrary         = 1 << 8,
} NS_AVAILABLE_IOS(9_3);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值