0

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

await Xamarin.Essentials.MediaPicker.CaptureVideoAsync();

视频拍摄时长超过 10 分钟。如何限制仅捕获 5 分钟的视频。

4

1 回答 1

1

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;
            });
        }
于 2020-12-23T11:27:19.853 回答