【问题标题】:How to capture only 5minutes video with Xamarin.Essentials MediaPicker in xamarin forms如何使用 Xamarin.Essentials MediaPicker 以 xamarin 形式捕获仅 5 分钟的视频
【发布时间】:2020-12-23 10:22:56
【问题描述】:
我们正在 xamarin 表单中使用 Xamarin Essentials MediaPicker 创建捕获图像和视频。
await Xamarin.Essentials.MediaPicker.CaptureVideoAsync();
超过 10 分钟的视频拍摄。如何限制只拍摄 5 分钟的视频。
【问题讨论】:
标签:
xamarin.forms
xamarin.android
xamarin.ios
video-capture
xamarin.essentials
【解决方案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;
});
}