private async Task TakeVideo() { bool permissionResult = await _permissionService.AskPermission(); if (permissionResult) { IsLoading = true; var model = await _mediaHelper.TakeVideoAsync().ConfigureAwait(false); if (model != null) { model.NoteId = _noteId; model.IsVideo = true; var videoName = model.VideoPath.Substring( model.VideoPath.LastIndexOf(@"/", StringComparison.InvariantCulture) + 1); var imageName = videoName.Substring(0, videoName.Length - 4) + "_thumb.jpg"; byte[] imageContent = _mediaService.GenerateThumbImage(model.VideoPath, ConstantsHelper.ThumbnailTimeFrame); byte[] resizedImage = _mediaService.ResizeImage(imageContent, ConstantsHelper.ResizedImageWidth, ConstantsHelper.ResizedImageHeight); string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal); string imagePath = Path.Combine(path, imageName); File.WriteAllBytes(imagePath, resizedImage); model.ImagePath = imagePath; model.Thumbnail = imagePath; await _transformHelper.ResizeAsync(imagePath, model).ConfigureAwait(false); Device.BeginInvokeOnMainThread(() => { GalleryItemModels.Add(model); }); } } Device.BeginInvokeOnMainThread(() => { IsLoading = false; }); }
private async void MultiMediaPickerServiceOnMediaPickedCompleted(object sender, IList <MediaFile> e) { _multiMediaPickerService.OnMediaPickedCompleted -= MultiMediaPickerServiceOnMediaPickedCompleted; IsLoading = true; foreach (var item in e) { var model = await GetGalleryItemModelFromMediaFile(item) .ConfigureAwait(false); Device.BeginInvokeOnMainThread(() => { lock (Obj) { GalleryItemModels.Add(model); } }); } IsLoading = false; }
private async Task TakePhoto() { bool permissionResult = await _permissionService.AskPermission(); if (permissionResult) { IsLoading = true; try { var model = await _mediaHelper.TakePhotoAsync(); if (model != null) { GalleryItemModels.Add(model); } } catch (Exception ex) { await UserDialogs.Instance.AlertAsync(ex.Message); } } IsLoading = false; }