2016-06-28 85 views
3

我正在开发一个项目,我需要在AVPlayer的iTunes资料库中播放歌曲。为此,我从iTunes库中选取了所选歌曲的网址"ipod-library://item/item.mp3?id=1577682869916034242",并在AVPlayer中播放了相同的歌曲。几乎所有的歌曲都会播放,但是对于少数歌曲MPMediaItemPropertyAssetURL返回零URL。还收到以下错误MPMediaItemPropertyAssetURL返回零

-[AVAssetReader initWithAsset:error:] invalid parameter not satisfying: asset != ((void *)0)

对此有何建议?为什么我从

MPMediaItemPropertyAssetURL

获得零值也知道怎样流或转换DRM保护的媒体轨道成NSData的? 请指教。

+0

您可以参考这个 http://stackoverflow.com/questions/5571036/how-to-detect-if-an-mpmediaitem-represents-a-drm-protected-audio-track-on-ios/6401317# 6401317。 我认为你应该检查从MPMediaItemPropertyAssetURL得到的url。 if(assetURL && assetURL.aboluteString.length> 0)...''' – Proton

+0

@DungProton我可以检查这个。但我想知道原因,为什么它是零。如果我想播放那首歌怎么办? –

+0

http://stackoverflow.com/questions/21195064/mp​​mediaitempropertyasseturl-returning-null-only-for-iphone-5s?是因为它在云端吗? – Larme

回答

0

我发现问题是我试图获取MPMediaItemPropertyAssetURL属性的歌实际上不在我的设备上。它被列在媒体库中,但实际上还在iCloud中。一旦我将歌曲下载到我的设备上,问题就解决了。