NULL MPMediaitemPropertyAssetURL

时间:2011-02-28 01:32:18

标签: iphone ios ios4 avaudioplayer mpmediaquery

使用MPMediaQuery然后从歌曲结果中获取MPMediaitemPropertyAssetURL有时会返回null(有时我的意思是在这种情况下,是用户歌曲库的1/3)。

有谁知道是什么原因造成的?我假设这是由于某种DRM造成的,但在任何地方都没有记录。

2 个答案:

答案 0 :(得分:1)

这个答案可以回答你的问题: https://stackoverflow.com/a/6401317/536308

答案 1 :(得分:0)

MPMediaItemPropertyAssetURL返回null的原因有两个。

  1. 音乐未下载到您的设备,但已添加到音乐中 仅库。
  2. 音乐已加载,但受DRM保护。

受DRM保护的资产无法使用AVPlayer播放,它只能使用MPMusicPlayer播放。因此,在继续使用AVPlayer之前,您必须检查两件事。

  1. MPMediaItemPropertyAssetURL为零吗?
  2. MPMediaItem是否受保护?

请参见下面的代码...。

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