无法用 iPod 音乐初始化 AVPlayer

Posted

技术标签:

【中文标题】无法用 iPod 音乐初始化 AVPlayer【英文标题】:Can't initialize AVPlayer with iPod music 【发布时间】:2012-09-11 01:01:49 【问题描述】:

我正在尝试使用设备 iPod 库中的歌曲内容初始化 AVPlayer。我的根控制器的 viewDidLoad 中有以下代码(将其提取到测试应用程序中以隔离它)。

MPMediaQuery* query = [MPMediaQuery songsQuery];

MPMediaItem* firstItem = [query.items objectAtIndex:0];
NSURL* url = [firstItem valueForKey:MPMediaItemPropertyAssetURL];
AVPlayerItem* playerItem = [[AVPlayerItem alloc] initWithURL:url];

self.player = [[AVPlayer alloc] initWithPlayerItem:playerItem];
[self.player play];

代码总是在我在 firstItem 上调用 valueForKey 以获取资产 URL 的行处抛出以下异常。:

* 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[valueForUndefinedKey:]:此类不符合键值编码的键assetURL。” * 首先抛出调用栈:

代码对我来说似乎很简单,不确定我可能在这里遗漏了什么,任何帮助都会很棒。这是 iPhone 4S 上的 ios 5.1。尝试同时启用 iTunes Match 和仅具有本地音乐的设备,结果相同。

【问题讨论】:

【参考方案1】:

您需要改用valueForProperty: 方法。

【讨论】:

谢谢,成功了。我的一个非常微妙的疏忽。

以上是关于无法用 iPod 音乐初始化 AVPlayer的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AVPlayer 中播放 iPod Library 文件

当 iPod 音乐停止时获取通知

格式为 m4p 的歌曲在 AVPlayer 中不起作用

背景 iPod 音乐音量与音效混合

AVPlayer + 循环 + 背景

后台播放音乐