为什么音乐的网址为nil
?
MPMediaPlaylist *playlist = [self.musicCollection objectAtIndex:cindex];
MPMediaItem *item = [playlist.items objectAtIndex:mindex];
NSUrl *url = [item valueForProperty:MPMediaItemPropertyAssetURL] ;
NSLog(@"URL == %@");
为什么要记录url = nil
?
答案 0 :(得分:0)
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");
}