开发者

NULL MPMediaitemPropertyAssetURL

Using MPMediaQuery and then getting the MPMediaitemPropertyAssetURL from the song results sometimes returns null (and by sometimes I mean in this case, 1/3 of the users song library).

Does anyone know what causes this? I'm assuming that this is due to some sort of DRM, but it isn't docum开发者_JS百科ented anywhere.


This answer can respond to your question : https://stackoverflow.com/a/6401317/536308


MPMediaItemPropertyAssetURL returns null for two possible reason.

  1. The music is not downloaded to your device but added in music library only.
  2. The music is loaded but its DRM-protected.

DRM-protected asset is not possible to play using AVPlayer, its only able to play using MPMusicPlayer. So you must need to check two things before proceed with AVPlayer.

  1. MPMediaItemPropertyAssetURL is nil ?
  2. MPMediaItem is protected ?

Please see the code below….

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");
        }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜