如何在 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;
});
}
我们正在使用 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;
});
}