目前我正在使用能够拍照的共享库开发一个跨平台应用程序。我正在使用 XLabs.Forms V2.0.5782 包来执行此应用程序。我成功开发了这个简单的应用程序,但它一次只允许我拍 一张照片。
我弄乱了代码,并设法拍了多张照片,但问题是,当我单击“使用照片”并再次重新打开以拍摄下一张照片时,相机将关闭。我想要的是,当我点击“使用照片”时,相机将在现场重新打开,而不是关闭并重新打开。
这是我为拍摄多张照片所做的代码,但我知道这不是正确的方法。它在按钮单击事件中。
IDevice device = Resolver.Resolve<IDevice>();
IMediaPicker media = device.MediaPicker;
//More codes here
async void TakePicture(object sender, System.EventArgs e)
{
var options = new CameraMediaStorageOptions()
{
PercentQuality = 50,
DefaultCamera = CameraDevice.Rear,
MaxPixelDimension = 250
};
var cancel = false;
while (!cancel)
{
await media.TakePhotoAsync(options).ContinueWith(t =>
{
if (t.IsFaulted) //If there's an error when taking photos
{
DisplayAlert("Error", "An error occurred when taking photo.\nPlease try again.", "OK");
}
else if (t.IsCanceled) //When the user click 'Cancel'
{
cancel = true;
}
else //When the user click 'Use Photo' - Here's the part where the camera will close and reopen until user click 'Cancel'
{
var img = ImageSource.FromStream(() => t.Result.Source);
picList.Add(img);
}
});
}
if (picList.Count > 0)
{
scrollParent.IsVisible = true;
imageScroll.Children.Clear();
foreach (var pl in picList)
{
var image = new Image()
{
Source = pl,
HeightRequest = 150,
HorizontalOptions = LayoutOptions.Start,
Aspect = Aspect.AspectFit,
Margin = new Thickness()
{
Right = 10
}
};
imageScroll.Children.Add(image);
}
}
}
我可以用 XLabs.Forms 拍摄多张照片吗?有没有合适的方法?我到处搜索,但一无所获。任何帮助都感激不尽。谢谢!
笔记:
我正在使用 Visual Studio for Mac 版本预览 9(7.0 build 2943)
我只在运行 iOS 10.2 的 iPhone 上进行了测试。尚未在安卓设备上测试
这是一个显示我的应用程序示例的 gif。我认为这会让你们更好地了解我想要什么以及正在发生的事情
请注意,此示例中拍摄了 3 张照片。相机打开四次。拍完每张照片后,我点击右下角的“使用照片”,当相机第四次打开时,我点击左下角的“取消”停止循环
谢谢!