使用 MPMediaItems 播放歌曲时 MPMediaItemPropertyAssetURL 变为 null

Posted

技术标签:

【中文标题】使用 MPMediaItems 播放歌曲时 MPMediaItemPropertyAssetURL 变为 null【英文标题】:MPMediaItemPropertyAssetURL becomes null when Using MPMediaItems to play songs 【发布时间】:2012-02-28 05:57:01 【问题描述】:

我正在实施一个与音乐相关的应用程序。在我的应用程序中,我需要使用 AVPlayer 而不是 MPMusicPlayer 来播放 iPod Library 歌曲。我使用 AVPlayer 来支持 MPMediaItems 的背景播放的 FadeIn 和 Fadeout 效果。我使用 MPMediaItemProperyAssetURL 从 MPMediaItem 获取 url 并将其作为输入提供给 AVPlayer,如下所示。我的问题是由于 URL 为空而无法播放某些项目。我发现从 iTunes 商店下载的歌曲(受 DRM 保护)无法播放,因为它们没有 MPMediaItemProperyAssetURL。请各位大神帮帮我,我该如何解决这些问题。我需要在 AVPlayer 中支持这些受 DRM 保护的歌曲。请查看我的以下代码以供参考,

MPMediaItem *currentItem = [songs objectAtIndex:songIndex];

NSURL *itemURL = [currentItem valueForProperty:MPMediaItemPropertyAssetURL];

currentlyPlayingItem=[itemURL absoluteString];

avPlayer = [[AVPlayer alloc] initWithURL:itemURL];
[avPlayer play];

提前致谢, 塞卡。

【问题讨论】:

【参考方案1】:

很遗憾,没有将 DRM 文件加载到 AVPlayer 或任何 AV Foundation API 的机制。如果您可以说服您的用户使用 iTunes Plus 以每首 0.30 美元的价格升级他们的整个音乐库,那是唯一的方法。

【讨论】:

以上是关于使用 MPMediaItems 播放歌曲时 MPMediaItemPropertyAssetURL 变为 null的主要内容,如果未能解决你的问题,请参考以下文章

运行播放命令时未定义的歌曲

当我停止使用功能播放歌曲并更改导航栏索引时,颤动的音乐继续播放

Iphone:在播放一首歌曲时,另一首歌曲重叠。

如何让 avaudioplayer 在点击新闻歌曲时停止播放上一首歌曲?

在我的 iPhone 应用程序中播放 iTunes 歌曲

如何在点击时播放歌曲?