从 MPMediaItems 获取 iCloud 状态信息

Posted

技术标签:

【中文标题】从 MPMediaItems 获取 iCloud 状态信息【英文标题】:Getting iCloud status information from MPMediaItems 【发布时间】:2012-01-06 19:06:47 【问题描述】:
NSURL *assetURL = [mediaItem valueForProperty:MPMediaItemPropertyAssetURL];    
NSNumber *percent = nil;
NSError *error = nil;
[assetURL getResourceValue:&percent forKey:NSURLUbiquitousItemPercentDownloadedKey error:&error];
return [percent unsignedIntValue];

在这段代码中,调用 getResouceValue:forKey:error: 后 'percent' 和 'error' 均为 nil:

我错过了什么吗?

【问题讨论】:

【参考方案1】:

根据您的MPMediaItem,它甚至可能没有有效的MPMediaItemPropertyAssetURL——任何 DRM 的媒体(例如旧的 DRM 的 .m4p 音乐文件,或来自 iTunes 的 DRM 的“电视节目”视频) 来自“iPod 库”没有定义 AssetURL。

除此之外,我对 iCloud 的东西还没有太多经验,只是问你是否确定甚至可以在 MPMediaItems 上查看此类信息,因为它们在技术上并不存在于你的应用的沙盒?

另外,您是否设置了应用程序的 iCloud 权利? Apple Doc: Configuring Your App’s iCloud Entitlements

【讨论】:

我不确定这是否可能,但我在文档中找不到太多关于在云中使用 MPMediaItems 的信息,除了您可以通过告诉 MPMusicPlayerController 来触发下载播放它们。 抱歉,我帮不上忙。我想我建议首先验证您从第一行代码中获得了非零 *assetURL。 添加了一些关于 iCloud 权利的 Apple 文档的编辑 感谢您的帮助。玩过之后发现,如果项目在云端或正在下载,assetURL 为 nil,完全下载后非 nil。

以上是关于从 MPMediaItems 获取 iCloud 状态信息的主要内容,如果未能解决你的问题,请参考以下文章

从当前 iCloud 用户获取 CloudKit 记录

CardDAV 从 iCloud 获取所有联系人

是否可以使用 CloudKit 从 iCloud 驱动器获取数据

从 iCloud 驱动器获取文件而不下载?

从 iCloud 获取 CalDAV 事件返回“403 Forbidden”

如何使用 Cloudkit 快速从 iCloud 获取当前用户信息