开发者

NULL MPMediaitemPropertyAssetURL

开发者 https://www.devze.com 2023-02-13 15:05 出处:网络
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).

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

精彩评论

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