iphone - 获取当前歌曲的插图时出错

标签 iphone objective-c mpmediaitem artwork

抓取当前歌曲的专辑封面并使用它来更改某个 imageView.image 会生成错误,但不再崩溃。 (之前确实如此,因为我遗漏了 if (!artwork) 错误处理。呃。)

这个方法:

- (void)handleNowPlayingItemChanged:(id)notification {
    MPMediaItem *item = self.musicPlayer.nowPlayingItem;
    CGSize albumCoverSize = self.albumCover.bounds.size;
    MPMediaItemArtwork *artwork =
                            [item valueForProperty:MPMediaItemPropertyArtwork];
    if (artwork) {
        self.albumCover.image = [artwork imageWithSize:albumCoverSize];
    } else {
        self.albumCover.image = nil;
    }
}

像这样爆炸:

CPSqliteStatementPerform: attempt to write a readonly database for
    UPDATE ddd.ext_container SET orig_date_modified = (SELECT date_modified
    FROM container WHERE pid=container_pid) WHERE orig_date_modified=0
CPSqliteStatementReset: attempt to write a readonly database for
    UPDATE ddd.ext_container SET orig_date_modified = (SELECT date_modified
    FROM container WHERE pid=container_pid) WHERE orig_date_modified=0

但仅限于发布时。它仍然显示图像(或缺乏图像)。诡异的。

编辑: iPod 库是只读的(应用程序无法更改任何内容,只能更改 iTunes),所以也许它正在大喊大叫
我写了一个只读的东西,但仍然允许它,因为没有任何只读的东西被修改?

修复此问题后,我需要调整大小(以支持横向),而不是 IB 的拉伸(stretch)。
虽然不重要,但仍然是一件好事。

最佳答案

这就是我所做的。它不会产生错误,并且每次都会生成图像。如果歌曲没有图片,则默认为我提供的图片。我认为因为您没有检查特定尺寸的图像(320 x 320,与我的屏幕宽度匹配),所以它无法正确计算出来。我不知道为什么你会收到 SQLite 错误,但希望这可以解决它!

MPMediaItemArtwork *artworkItem = [self.musicPlayer.nowPlayingItem valueForProperty: MPMediaItemPropertyArtwork];
if ([artworkItem imageWithSize:CGSizeMake(320, 320)]) {
    [self.currentlyPlayingArtworkView setImage:[artworkItem imageWithSize:CGSizeMake (320, 320)]];
}
else {
    [self.currentlyPlayingArtworkView setImage:[UIImage imageNamed:@"NoArtworkImage"]];
}

关于iphone - 获取当前歌曲的插图时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6346079/

相关文章:

iphone - MPMoviePlayerViewController 视频时长

javascript - ipad焦点输入时如何隐藏键盘

ios - 使用 Google+ iOS API 如何获取登录用户的个人资料详细信息?

objective-c - 在 iOS 8 的自定义键盘中使用 deleteBackward 删除整个单词

ios - 如何设置 MPNowPlayingInfoCenter 的图稿图像

ios - 如何在 Swift 中计算给定 AVURLAsset 中音频/字幕轨道的数量?

ios - 当应用程序进入后台时,约束会重置 - iOS 13

ios - Objective-C 中的逗号

ios - UILocalizedIndexedCollat​​ion - MPMediaQuery

ios - 如何提高 MPMediaItem 的频率范围? (类似于参数均衡器,例如,将 500 Hz 提升 12 dB)