获取 iPod 库中项目的专辑年份?
Posted
技术标签:
【中文标题】获取 iPod 库中项目的专辑年份?【英文标题】:Get album year for item in iPod library? 【发布时间】:2011-02-01 12:36:38 【问题描述】:尝试以下代码:
// Per albums
MPMediaQuery *albumsQuery = [MPMediaQuery albumsQuery];
NSArray *collections = [albumsQuery collections];
for (MPMediaItemCollection *collection in collections)
NSDate *collectionReleaseDate = [collection valueForProperty: MPMediaItemPropertyReleaseDate];
NSLog(@"collection release date: %@", collectionReleaseDate);
MPMediaItem *representativeItem = [collection representativeItem];
NSDate *representativeItemReleaseDate = [representativeItem valueForProperty: MPMediaItemPropertyReleaseDate];
NSLog(@"representativeItem release date: %@", representativeItemReleaseDate);
// Just per item
MPMediaQuery *query = [[MPMediaQuery alloc] init];
NSArray *items = [query items];
for (MPMediaItem *item in items)
NSDate *date = [item valueForProperty: MPMediaItemPropertyReleaseDate];
NSLog(@"release date: %@", date);
在所有情况下,我的 NSDates 都为零... 但是在 iPod 库中我可以看到日期,所以信息必须是可用的。 正确的获取方式是什么?
【问题讨论】:
发布日期只能使用 ios 4 或更高版本访问。你的目标版本是什么? 使用 iOS SDK 4.2,部署目标 = iOS 4.0,在 iPad 4.2.1 和 iPod 2nd gen 4.2.1 上测试 ... 【参考方案1】:嗯,我想我已经想通了。我在想 iTunes 中的“年份”列对应于 API 中的 MPMediaItemPropertyReleaseDate - 但这是错误的。我的项目实际上没有发布日期信息。
我还找到了如何获取“年份”信息(我需要),但不幸的是以未记录的方式:
MPMediaItem *item = ...;
NSNumber *yearNumber = [item valueForProperty:@"year"];
if (yearNumber && [yearNumber isKindOfClass:[NSNumber class]])
int year = [yearNumber intValue];
if (year != 0)
// do something with year
【讨论】:
@Andy 为我在 iOS 6.0 上工作。 @soheilpro 你在 6.0 还是 6.1 上测试? @Andy 6.0。你在 6.1 上测试过吗? @soheilpro 是的,很奇怪,也使用了 6.0,但它对我不起作用。 :// 哇,这太棒了!适用于 ios 9.0.2。我不知道为什么 Apple 不提供这种信息。以上是关于获取 iPod 库中项目的专辑年份?的主要内容,如果未能解决你的问题,请参考以下文章