如何使用 Xamarin.Essentials MediaPicker 以 xamarin 形式捕获仅 5 分钟的视频 用法

问题描述

我们正在使用 Xamarin Essentials MediaPicker 以 xamarin 形式创建捕获图像和视频。

await Xamarin.Essentials.MediaPicker.CaptureVideoAsync();

视频拍摄时长超过 10 分钟。如何限制只能拍摄 5 分钟的视频。

解决方法

Xamarin Essentials MediaPicker 仍处于预览阶段,目前不支持此类选项。

我们可以使用来自 nuget 的插件 Media.Plugin

用法

private async void Button_Clicked(object sender,EventArgs e)
        {
            await CrossMedia.Current.Initialize();

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


            // record video
            //var file = await CrossMedia.Current.TakeVideoAsync(new Plugin.Media.Abstractions.StoreVideoOptions
            //{
            //    DesiredLength = new TimeSpan(300),//set length here 300s
            //    Quality = Plugin.Media.Abstractions.VideoQuality.High
            //});

            //if (file == null)
            //    return;

            //take photo
            var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
            {
                Directory = "Sample",Name = "test.jpg"
            });

            if (file == null)
                return;

            await DisplayAlert("File Location",file.Path,"OK");

            image.Source = ImageSource.FromStream(() =>
            {
                var stream = file.GetStream();
                return stream;
            });
        }