MPMediaItemArtwork上的ImageWithSize返回非常小的coverart图像(55 x 55 px)

时间:2011-03-07 09:17:25

标签: iphone xamarin.ios mpmediaitem

我正在尝试在Monotouch中创建一个非常简单的音乐播放器(适合小孩子),并且大部分音乐播放器都很棒。

然而,当我在播放列表中迭代MPMediaItems并尝试获取他们的作品时,我总会得到尺寸为55 x 55像素的图像。当我收听内置IPod应用程序中的歌曲时,我可以看到存储的艺术作品比那些大。

平台:最新的monodevelop和monotouch。设备上的iOS 4.2.3

获取播放列表中第一首歌曲的艺术作品的代码:

MPMediaItem[] songs = foundPlaylist.Items;
MPMediaItemArtwork artwork = (MPMediaItemArtwork)songs[0].ValueForProperty(MPMediaItemProperty.Artwork);
var imageRect = artwork.ImageCropRectangle;
UIImage artWorkImage = artwork.ImageWithSize (imageRect);

我在这里很难过。有什么想法吗?

祝你好运

索伦

1 个答案:

答案 0 :(得分:2)

Oki,弄清楚了。 非常感谢Kangaroo在单声道聊天!

MPMediaItemArtwork上的imageWithSize方法存在绑定错误,因此您需要直接向选择器发送消息。这是以这种方式完成的(获得256x256图像):

UIImage artWorkImage = (UIImage) Runtime.GetNSObject (Messaging.IntPtr_objc_msgSend_SizeF (artwork.Handle, Selector.GetHandle ("imageWithSize:"), new SizeF (256, 256)));