从视频创建缩略图 - Xamarin

时间:2014-07-25 18:13:09

标签: c# xamarin.ios xamarin

所以我在这里查看了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的。

编辑:我编辑了代码,现在正在使用。

2 个答案:

答案 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)的浮动,之后它运行良好。