由于iPhone 自带的音乐软件Music的推出.从iPod取出来的音乐MPMediaItemPropertyAssetURL属性可能为空. 这是因为iPhone自带软件Music对音乐版权的保护,对于所有进行过 DRM Protection(数字版权加密保护)的音乐都不能被第三方APP获取并播放.即使这些音乐已经下载到本地.但是还是可以播放本地未进行过数字版权加密的音乐.也就是您自己手动导入的音乐.
示例代码如下:
- (void)getMusicList {
MPMediaQuery *query = [MPMediaQuery songsQuery];
NSArray *queryArry = [query items];
for (MPMediaItem *item in queryArry) {
NSURL *assetURL;
if ([item valueForProperty:MPMediaItemPropertyAssetURL]) {
assetURL = [item valueForProperty:MPMediaItemPropertyAssetURL];
}
if (assetURL) {
Music *music = [[Music alloc] init];
if (item.title.length) {
music.musicName = item.title;
}else {
music.musicName = NSLocalizedString(@"MXMUSIC_MUSICINFO_MUSICNAME_DEFAULT", nil);
}
music.url = assetURL;
if (item.artist.length) {
music.artist = item.artist;
}else {
music.artist = NSLocalizedString(@"MXMUSIC_MUSICINFO_MUSICARTIST_DEFAULT", nil);
}
if (item.albumTitle.length) {
music.albumTitle = item.albumTitle;
}else {
music.albumTitle = NSLocalizedString(@"MXMUSIC_MUSICINFO_MUSICALBUM_DEFAULT", nil);
}
[self.musicArray addObject:music];
}
}
}