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 は、考えられる 2 つの理由で null を返します。

  1. 音楽はデバイスにダウンロードされず、音楽ライブラリにのみ追加されます。
  2. 音楽はロードされていますが、DRM で保護されています。

DRM で保護されたアセットは、AVPlayer を使用して再生することはできず、MPMusicPlayer を使用してのみ再生できます。したがって、AVPlayer を使用する前に、2 つのことを確認する必要があります。

  1. MPMediaItemPropertyAssetURL は nil ですか?
  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 に答える