为什么音乐nil
的网址?
MPMediaPlaylist *playlist = [self.musicCollection objectAtIndex:cindex];
MPMediaItem *item = [playlist.items objectAtIndex:mindex];
NSUrl *url = [item valueForProperty:MPMediaItemPropertyAssetURL] ;
NSLog(@"URL == %@");
为什么要记录url = nil
?
由于两个原因,MPMediaItemPropertyAssetURL / MPMediaItem assetURL为null / nil。
受DRM保护的资产无法使用AVPlayer播放,它只能使用MPMusicPlayer播放。因此,在继续使用AVPlayer之前,您必须先检查两件事。
请看下面的代码......
MPMediaItem *theChosenSong = [[mediaItemCollection items] firstObject];
NSURL *assetURL = [theChosenSong valueForProperty:MPMediaItemPropertyAssetURL];
if(assetURL) {
BOOL bIsProtected = theChosenSong.protectedAsset;
if(!bIsProtected) {
// Do whatever you want to do
NSLog(@"Its not protected");
}
else {
NSLog(@"Its DRM protected");
}
}
else {
NSLog(@"Its DRM protected");
}