抓取当前歌曲的专辑封面并使用它来更改某个imageView.image
会产生错误,但不会再崩溃。 (它之前做过,因为我遗漏了if (!artwork)
错误处理.Eheh。)
此方法:
- (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),所以也许它会大喊大叫 我写了一个只读的东西,但仍然允许它,因为没有任何readonly被修改?
在修好之后,我需要调整工作大小(对于Landscape支持)而不是IB的拉伸。
不重要,但仍然是一件好事。
答案 0 :(得分:0)
这就是我的工作。它不会产生任何错误,并且每次都会产生图像。如果歌曲没有图像,则默认为我提供的图像。我想因为你没有检查具有特定尺寸的图像(320×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"]];
}
答案 1 :(得分:0)
此处链接 - Why am I getting this CPSqliteStatementPerform error in xcode console
将此放在此处,以便将问题标记为已回答。