我将iPod播放器合并到我的应用中。我能够创建一个队列,然后播放歌曲。我无法获得当前歌曲的属性值。我已经注册了通知,日志显示通知已触发。
MPMediaItem *currentItem = self.musicPlayer.nowPlayingItem;
NSLog(@"currentItem = %@", currentItem);
日志输出显示:currentItem =(null)
我正在运行xcode 4.5.2 ios 6.0。
任何帮助都非常感谢。
对于任何可能遇到同一问题的人,问题是我在运行应用程序后同步了音乐。您需要观察图书馆更改:
MPMediaLibraryDidChangeNotification
[[MPMediaLibrary defaultLibrary] beginGeneratingLibraryChangeNotifications];
您在代码中写了NSLog(@"currentItem = %@", currentItem);
,但也许您还没有完全了解mpmediaitem是什么。
mpMediaItem不是NSSTRING,这就是为什么您在此处无效的原因。MpMediaItem具有许多属性,包括歌曲标题,专辑名称和艺术家名称。要访问mpMediaItem的属性,例如标题,请使用ValueforProperty:方法。
NSLog(@"currentItem = %@", [currentItem valueForProperty:MPMediaItemPropertyTitle])
类似的东西。
我也遇到了我偶然混合应用程序播放器
的问题[MPMusicPlayerController applicationMusicPlayer]
和iPod Player
[MPMusicPlayerController iPodMusicPlayer]
我正在使用ipodmusicclayer播放音乐,并试图偶然地调整ApplicationMusicClayer的音量。
所以要当心不要无意间混合; - )