首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >iOS - MPMediaItem显示默认图稿

iOS - MPMediaItem显示默认图稿
EN

Stack Overflow用户
提问于 2011-10-20 00:57:44
回答 2查看 6.8K关注 0票数 17

我目前正在开发一个应用程序,显示什么艺术家,曲目和专辑艺术,你正在听的音乐播放器。一切都很顺利,除了当我播放一首没有插图的歌曲时,我希望能够显示我自己的默认图像(而不是显示空白屏幕)。

下面是我想象的它应该是如何工作的,但是它永远不会进入else,因为itemArtwork永远不是空的!

感谢您的帮助。

谢谢,本

_item = [_player nowPlayingItem];
MPMediaItemArtwork *itemArtwork = [_item valueForProperty:MPMediaItemPropertyArtwork];

if (itemArtwork != nil) {
    UIImage *albumArtworkImage = [itemArtwork imageWithSize:CGSizeMake(250.0, 250.0)];
    _albumArtImageView.image = albumArtworkImage;
} else { // no album artwork
    NSLog(@"No ALBUM ARTWORK");
    _albumArtImageView.image = [UIImage imageNamed:@"kol.jpg"];
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-20 02:00:46

MPMediaItemArtwork似乎一直存在,甚至对于没有插图的曲目也是如此。

我检测是否没有图像的方法是查看MPMediaItemArtwork的imageWithSize是否返回NULL。

或者,稍微修改一下你的代码:

_item = [_player nowPlayingItem];
UIImage *albumArtworkImage = NULL;
MPMediaItemArtwork *itemArtwork = [_item valueForProperty:MPMediaItemPropertyArtwork];

if (itemArtwork != nil) {
    albumArtworkImage = [itemArtwork imageWithSize:CGSizeMake(250.0, 250.0)];
}

if (albumArtworkImage) {
    _albumArtImageView.image = albumArtworkImage;
} else { // no album artwork
    NSLog(@"No ALBUM ARTWORK");
    _albumArtImageView.image = [UIImage imageNamed:@"kol.jpg"];
}

我希望这个信息能帮到你(如果是的话,把这个答案标记为选中:-)

票数 34
EN

Stack Overflow用户

发布于 2013-11-17 23:45:54

如果你只需要检查图片是否存在(不需要抓取图片,这会消耗大量的CPU周期),你也可以检查itemArtwork.bounds属性。如果图稿不存在,则bounds.size.widthbounds.size.height属性将为0:

MPMediaItemArtwork *artwork = [_item valueForProperty:MPMediaItemPropertyArtwork];
BOOL hasArtwork = (artwork.bounds.size.width > 0 && artwork.bounds.size.height > 0);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7825064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档