Мы создаем захват изображений и видео с помощью Xamarin Essentials MediaPicker в формах xamarin.
await Xamarin.Essentials.MediaPicker.CaptureVideoAsync();
Видеосъемка продолжительностью более 10 минут. Как ограничить захват только 5 минут видео.
Xamarin Essentials MediaPicker все еще находится в предварительной версии и не поддерживает такой вариант до сих пор.
Мы могли бы использовать плагин Media.Plugin от nuget.
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;
});
}