private void DisplayResult(ISN_UIPickerControllerResult result) { m_LastPickerResult = result; if (result.IsSucceeded) { if (result.MediaType.Equals(ISN_UIMediaType.IMAGE)) { DisplayMessage("Image Loaded!"); ApplyImageToGui(result.Image); } if (result.MediaType.Equals(ISN_UIMediaType.MOVIE)) { DisplayMessage("Video Loaded!", () => { if (!ISN_Settings.Instance.AVKit) { DisplayMessage("AVKit should be enabled in plugin setting in order to retrieve video thumbnail"); } else { Texture2D image = ISN_AVAssetImageGenerator.CopyCGImageAtTime(result.MediaURL, 0); ApplyImageToGui(image); } }); } } else { DisplayMessage("Failed: " + result.Error.FullMessage); } UpdateUI(); }
internal static void CaptureMedia(int thumbnailSize, UM_MediaType type, ISN_UIImagePickerControllerSourceType source, Action <UM_MediaResult> callback) { ISN_UIImagePickerController picker = new ISN_UIImagePickerController(); picker.SourceType = source; switch (type) { case UM_MediaType.Image: picker.MediaTypes = new List <string>() { ISN_UIMediaType.IMAGE }; break; case UM_MediaType.Video: picker.MediaTypes = new List <string>() { ISN_UIMediaType.MOVIE }; break; } picker.MaxImageSize = thumbnailSize; picker.ImageCompressionFormat = ISN_UIImageCompressionFormat.JPEG; picker.ImageCompressionRate = 0.8f; UM_MediaResult pickResult; picker.Present((result) => { if (result.IsSucceeded) { UM_Media media = null; switch (result.MediaType) { case ISN_UIMediaType.IMAGE: media = new UM_Media(result.Image, result.ImageURL, UM_MediaType.Image); break; case ISN_UIMediaType.MOVIE: Texture2D img = ISN_AVAssetImageGenerator.CopyCGImageAtTime(result.OriginalMediaURL, 0); media = new UM_Media(img, result.MediaURL, UM_MediaType.Video); break; } pickResult = new UM_MediaResult(media); } else { pickResult = new UM_MediaResult(result.Error); } callback.Invoke(pickResult); }); }