我正在将iPod播放器整合到我的应用中。我能够创建一个队列,然后播放歌曲。我无法获得当前歌曲的属性值。我已经注册了通知,日志显示通知已被触发。
MPMediaItem *currentItem = self.musicPlayer.nowPlayingItem;
NSLog(@"currentItem = %@", currentItem);
日志输出显示:currentItem =(null)
我正在运行Xcode 4.5.2 iOS 6.0。
非常感谢任何帮助。
答案 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的音量。
所以请注意不要无意中混淆它们; - )