为什么我的MPMediaItem NowPlayingItem返回null?

时间:2012-11-08 16:05:30

标签: ios6 mpmediaitem

我正在将iPod播放器整合到我的应用中。我能够创建一个队列,然后播放歌曲。我无法获得当前歌曲的属性值。我已经注册了通知,日志显示通知已被触发。

MPMediaItem *currentItem = self.musicPlayer.nowPlayingItem;
NSLog(@"currentItem = %@", currentItem);

日志输出显示:currentItem =(null)

我正在运行Xcode 4.5.2 iOS 6.0。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

对于可能遇到同样问题的其他人,问题是我在运行应用程序后同步了我的音乐。您需要观察库更改:

MPMediaLibraryDidChangeNotification

[[MPMediaLibrary defaultLibrary] beginGeneratingLibraryChangeNotifications];

答案 1 :(得分:1)

您在代码中写了NSLog(@"currentItem = %@", currentItem);,但也许您还没有完全理解MPMediaItem是什么。

MPMediaItem不是NSString,这就是你在这里得到null的原因。 MPMediaItem有很多属性,包括歌曲名称,专辑名称和艺术家姓名。要访问MPMediaItem的属性(如标题),请使用valueForProperty:method。

NSLog(@"currentItem = %@", [currentItem valueForProperty:MPMediaItemPropertyTitle])

像这样。

答案 2 :(得分:0)

我也有一个问题,我偶然混合应用程序播放器

[MPMusicPlayerController applicationMusicPlayer]

和ipod播放器

[MPMusicPlayerController iPodMusicPlayer]

我正在使用iPodMusicPlayer播放音乐,并试图偶然调整applicationMusicPlayer的音量。

所以请注意不要无意中混淆它们; - )