如何在 xamarin 表单中使用 Xamarin.Essentials MediaPicker 仅捕获 5 分钟的视频

How to capture only 5minutes video with Xamarin.Essentials MediaPicker in xamarin forms

我们正在使用 Xamarin 表单中的 Xamarin Essentials MediaPicker 创建捕获图像和视频。

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;
            });
        }