コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }