MPMediaQuery を使用して、曲の結果から MPMediaitemPropertyAssetURL を取得すると、null が返されることがあります (この場合、ユーザーの曲ライブラリの 1/3 を意味することもあります)。
誰がこれを引き起こすのか知っていますか? これはある種の DRM によるものだと推測していますが、どこにも文書化されていません。
MPMediaQuery を使用して、曲の結果から MPMediaitemPropertyAssetURL を取得すると、null が返されることがあります (この場合、ユーザーの曲ライブラリの 1/3 を意味することもあります)。
誰がこれを引き起こすのか知っていますか? これはある種の DRM によるものだと推測していますが、どこにも文書化されていません。
この答えはあなたの質問に答えることができます: https ://stackoverflow.com/a/6401317/536308
MPMediaItemPropertyAssetURL は、考えられる 2 つの理由で null を返します。
DRM で保護されたアセットは、AVPlayer を使用して再生することはできず、MPMusicPlayer を使用してのみ再生できます。したがって、AVPlayer を使用する前に、2 つのことを確認する必要があります。
以下のコードをご覧ください…。
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");
}