Beispiel #1
0
 public static bool TryGenerateVideoThumbnail2(string localFile, CGSize size, out UIImage image, string extensionHint = ".mov")
 {
     image = null;
     try {
         const int secondToGet = 1;
         const int timeScale   = 60;
         var       asset       = AVAsset.FromUrl(NSUrl.FromFilename(localFile));
         var       generator   = new AVAssetImageGenerator(asset);
         var       time        = new CMTime(secondToGet, timeScale);
         CMTime    actualTime;
         NSError   error;
         var       cgImage = generator.CopyCGImageAtTime(time, out actualTime, out error);
         if (error == null)
         {
             image = new UIImage(cgImage);
             image = UIImageExtensions.ResizeAndDispose(image,
                                                        size,
                                                        ResizeMethod.AspectFill,
                                                        ResizeAlignment.CenterCenter
                                                        );
             return(true);
         }
     } catch {
     }
     return(false);
 }
Beispiel #2
0
        public static bool TryGenerateVideoThumbnail(string localFile, CGSize size, out UIImage image)
        {
            image = null;
            try {
                const float secondToGet = 1.0f;

                using (var player = new MPMoviePlayerController(NSUrl.FromFilename(localFile))) {
                    image = player.ThumbnailImageAt(
                        secondToGet,
                        MPMovieTimeOption.NearestKeyFrame
                        );

                    image = UIImageExtensions.ResizeAndDispose(image,
                                                               size,
                                                               ResizeMethod.AspectFill,
                                                               ResizeAlignment.CenterCenter
                                                               );
                    player.Stop();
                }
            } catch {
                return(false);
            }

            return(true);
        }