コード例 #1
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);
        }
コード例 #2
0
        public async static Task <AbMediaContent> takePicture(Card card, Page parentPage)
        {
            //NOTE: must set compile using to "Android 6" and target android version 6
            //Otherwise a null pointer error occurs when using Android 7.1 ...
            await CrossMedia.Current.Initialize();

            if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
            {
                await parentPage.DisplayAlert("No Camera", ":( No camera available.", "OK");

                return(null);
            }

            var file = await CrossMedia.Current.TakePhotoAsync(
                new Plugin.Media.Abstractions.StoreCameraMediaOptions
            {
                Name = $@"{Guid.NewGuid()}.jpg",

#if __IOS__
                Directory = "Pictures",
#endif

                SaveToAlbum = false
            }
                );

            if (file == null)
            {
                return(null);
            }

            ImageMediaContent newMedia = new ImageMediaContent(file.Path);

            card?.addMedia(newMedia);
            MediaManager.addNewMedia(newMedia);

            return(newMedia);
        }