Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从MPMediaItem访问艺术品?_Ios_Xamarin - Fatal编程技术网

Ios 如何从MPMediaItem访问艺术品?

Ios 如何从MPMediaItem访问艺术品?,ios,xamarin,Ios,Xamarin,我正在使用Xamarin编写一个应用程序,并使用MPMediaItemPickerController获得了一个MPMediaItem 虽然我可以使用MPMediaItem.valueForProperty访问文本值,但当我通过MPMediaItem.ArtworkProperty获取插图时,它似乎返回了MPMediaItemArtwork 将返回值强制转换为MPMediaItemArtwork将导致null,并且在Xamarin IOS API中似乎没有与MPMediaItemArtwork对

我正在使用Xamarin编写一个应用程序,并使用
MPMediaItemPickerController
获得了一个
MPMediaItem

虽然我可以使用
MPMediaItem.valueForProperty
访问文本值,但当我通过
MPMediaItem.ArtworkProperty
获取插图时,它似乎返回了
MPMediaItemArtwork

将返回值强制转换为
MPMediaItemArtwork
将导致
null
,并且在Xamarin IOS API中似乎没有与
MPMediaItemArtwork
对应的类


这是一个遗漏还是我应该以另一种方式访问艺术品?

在播放了一段时间后,结果是硬铸的效果很好(与使用
as
相反),如下所示:

MPMediaItemArtwork artwork = (MPMediaItemArtwork)mediaItem.ValueForKey(MPMediaItem.ArtworkProperty);
UIImage image = artwork.ImageWithSize(artwork.Bounds.Size);
NSMutableData jpegData = image.AsJPEG() as NSMutableData;
拥有
MPMediaItemArtwork
后,您可以获得如下原始图像数据:

MPMediaItemArtwork artwork = (MPMediaItemArtwork)mediaItem.ValueForKey(MPMediaItem.ArtworkProperty);
UIImage image = artwork.ImageWithSize(artwork.Bounds.Size);
NSMutableData jpegData = image.AsJPEG() as NSMutableData;