public VideoMediaContent(String filePath) : base(filePath) { string fileName = Path.GetFileNameWithoutExtension(filePath); string thumbnailFilePath = Path.Combine(FilePaths.allVideoThumbnailsPath, fileName + ".jpg"); if (!File.Exists(thumbnailFilePath)) { Task.Run(async() => { await VideoThumbnailHelper.createVideoThumbnailAsync(filePath); this.image = Xamarin.Forms.ImageSource.FromFile(thumbnailFilePath); }); } else { this.image = Xamarin.Forms.ImageSource.FromFile( thumbnailFilePath); } }
public async static Task <AbMediaContent> takeVideo(Card card, Page parentPage) { await CrossMedia.Current.Initialize(); if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakeVideoSupported) { await parentPage.DisplayAlert("No Camera", ":( No camera for video available.", "OK"); return(null); } var file = await CrossMedia.Current.TakeVideoAsync( new Plugin.Media.Abstractions.StoreVideoOptions { Name = $@"{Guid.NewGuid()}.mp4", #if __IOS__ Directory = "Movies", #endif SaveToAlbum = false } ); if (file == null) { return(null); } await VideoThumbnailHelper.createVideoThumbnailAsync(file.Path); VideoMediaContent newMedia = new VideoMediaContent(file.Path); card?.addMedia(newMedia); MediaManager.addNewMedia(newMedia); return(newMedia); }