【发布时间】:2014-10-02 13:32:15
【问题描述】:
当尝试使用MPMediaItemPropertyArtwork 抓取和显示歌曲封面/艺术作品时,它们无法在我的UIImageView 中显示。此外,由于其他 MPMediaItems 显示艺术家姓名和歌曲名称,它们不会在歌曲更改时更新。
这是我的 .h 文件:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *songtitle;
@property (weak, nonatomic) IBOutlet UILabel *songartist;
@property (weak, nonatomic) IBOutlet UILabel *nowplaying;
@property (weak, nonatomic) IBOutlet UIImageView *songalbumart;
@end
这是我的 .m 文件的一部分,其内容为 MPMusicPlayerController:
MPMusicPlayerController *player = [MPMusicPlayerController systemMusicPlayer];
MPMediaItem *item = [player nowPlayingItem];
NSString *songtitlestring = [item valueForProperty:MPMediaItemPropertyTitle];
NSString *songartiststring = [item valueForProperty:MPMediaItemPropertyArtist];
NSString *nowplayingstring = [NSString stringWithFormat:@"#NowPlaying %@ by %@, via @TweetPlaying", songtitlestring, songartiststring];
self.songalbumart = [item valueForProperty:MPMediaItemPropertyArtwork];
self.songtitle.text = songtitlestring;
self.songartist.text = songartiststring;
self.nowplaying.text = nowplayingstring;
任何人都知道如何解决以下问题:
- MPMediaItemPropertyArtwork 未显示(
IBOutlet已连接!) - 当用户更改歌曲时,UILabels 的 MPMediaItems 显示艺术家姓名和歌曲名称不会更新
我正在为 iOS 8 开发,并在那里使用 MPMusicPlayerController's systemMusicPlayer,因为 iPodMusicPlayer 已被贬值。
任何帮助将不胜感激!
编辑:所以我必须使用MPMusicPlayerControllerPlaybackStateDidChangeNotification,任何人都可以为我的情况提供一个例子吗?
【问题讨论】:
-
[self.songalbumart setImage:[[item valueForProperty:MPMediaItemPropertyArtwork] imageWithSize:CGSizeMake(songalbumart.frame.size.width, songalbumart.frame.size.height)];?你说信息没有更新,但是当音乐改变时你会听吗? -
@Larme 我正在使用 IBOutlet 将 MKMediaPropertyArtwork 链接到我的 Storyboard 上的 UIImageView,但该代码仍然有效吗?不,当音乐改变时应用程序没有在听,你能提供解决方案吗?
-
我觉得你还是可以用`MPMusicPlayerControllerNowPlayingItemDidChangeNotification`网上应该有例子吧。
-
@Larme 你能提供一些我喜欢的东西吗?找不到与我的情况完全相关的任何内容。
-
使用
iPodMusicPlayer查找示例,并将其替换为systemMusicPlayer。 stackoverflow.com/questions/25788671/…(并更改您收听的通知,但您将了解它是如何工作的)。
标签: ios objective-c uiimageview ios8 mpmediaitem