所以我在这里查看了Obj-c的示例,了解如何执行此操作,但是当我在Xamarin中执行此操作时,我的图像似乎为空。
这是代码
base.ViewDidLoad ();
cropperView = new CropperView ();
View.AddSubview (cropperView);
NSObject notification;
MPMoviePlayerController movie = new MPMoviePlayerController (url);
NSNumber[] time;
time = new NSNumber[1];
time [0] = new NSNumber (1f);
movie.RequestThumbnails (time, MPMovieTimeOption.Exact);
notification = MPMoviePlayerController.Notifications.ObserveThumbnailImageRequestDidFinish ((sender, args) => {
imgImage.Image = args.Image;
});
args.Image是一直保持返回null的。
编辑:我编辑了代码,现在正在使用。
答案 0 :(得分:3)
我使用以下代码从视频创建缩略图,它完美运行
public static UIImage GenerateImage(NSUrl videoUrl)
{
var asset = AVAsset.FromUrl(videoUrl);
var imageGenerator = AVAssetImageGenerator.FromAsset(asset);
imageGenerator.AppliesPreferredTrackTransform = true;
var actualTime = asset.Duration;
CoreMedia.CMTime cmTime = new CoreMedia.CMTime(1, 60);
NSError error;
var imageRef = imageGenerator.CopyCGImageAtTime(cmTime, out actualTime, out error);
if (imageRef == null)
return null;
var image = UIImage.FromImage(imageRef);
return image;
}
答案 1 :(得分:0)
我找到了答案。我不得不将新的NSNumber(1)更改为新的NSNumber(1f)的浮动,之后它运行良好。