2

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

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

4

2 回答 2

1

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

于 2011-12-12T09:10:35.077 回答
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");
        }
于 2018-09-18T11:42:22.097 回答