Ios6 为什么我的MPMediaItem NowPlayingItem返回空值?

Ios6 为什么我的MPMediaItem NowPlayingItem返回空值?,ios6,mpmediaitem,Ios6,Mpmediaitem,我正在将iPod播放器整合到我的应用程序中。我可以创建一个队列,然后播放歌曲。我无法获取当前歌曲的属性值。我已经注册了通知,日志显示通知已触发 MPMediaItem *currentItem = self.musicPlayer.nowPlayingItem; NSLog(@"currentItem = %@", currentItem); 日志输出显示:currentItem=null 我正在运行Xcode 4.5.2 iOS 6.0 非常感谢您的帮助。对于其他可能遇到相同问题的人,问题是

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

MPMediaItem *currentItem = self.musicPlayer.nowPlayingItem;
NSLog(@"currentItem = %@", currentItem);
日志输出显示:currentItem=null

我正在运行Xcode 4.5.2 iOS 6.0


非常感谢您的帮助。

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

MPMediaLibraryDidChangeNotification

[[MPMediaLibrary defaultLibrary] beginGeneratingLibraryChangeNotifications];

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

MPMediaLibraryDidChangeNotification

[[MPMediaLibrary defaultLibrary] beginGeneratingLibraryChangeNotifications];
你写的NSLog@currentItem=%@,当前项目;在您的代码中,但可能您还没有完全了解什么是MPMediaItem

MPMediaItem不是NSString,这就是为什么这里为null。MPMediaItem有很多属性,包括歌曲标题、专辑名和艺术家名。要访问MPMediaItem的属性(如标题),请使用valueForProperty:method

NSLog(@"currentItem = %@", [currentItem valueForProperty:MPMediaItemPropertyTitle])
类似这样的东西。

你写的NSLog@currentItem=%@,当前项目;在您的代码中,但可能您还没有完全了解什么是MPMediaItem

MPMediaItem不是NSString,这就是为什么这里为null。MPMediaItem有很多属性,包括歌曲标题、专辑名和艺术家名。要访问MPMediaItem的属性(如标题),请使用valueForProperty:method

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

类似这样的问题。

我还遇到了一个问题,我无意中将应用程序播放器混入了其中

[MPMusicPlayerController applicationMusicPlayer]
还有ipod播放器

[MPMusicPlayerController iPodMusicPlayer]
我使用iPodMusicPlayer播放音乐时,无意中试图调整applicationMusicPlayer的音量


所以要小心不要无意中把它们混在一起-

我还遇到了一个问题,我意外地将应用程序播放器混入其中

[MPMusicPlayerController applicationMusicPlayer]
还有ipod播放器

[MPMusicPlayerController iPodMusicPlayer]
我使用iPodMusicPlayer播放音乐时,无意中试图调整applicationMusicPlayer的音量


所以要小心不要无意中把它们混在一起-

看起来很有希望。谢谢我在寻找一种方法来观察媒体项目的变化。看起来很有希望。谢谢我在寻找一种观察媒体项目变化的方法。