目前,我正在使用能够拍照的共享库开发跨平台应用。我使用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版本2943)
我只在运行iOS 10.2的iPhone上测试过。尚未在Android设备上测试
这是一个显示我的应用程序示例的gif。我想这会让你们更好地理解我想要的和正在发生的事情
请注意,此示例中拍摄了3张照片。相机打开了四次。拍完每张照片后,我点击了“使用照片”。在右下方,当相机在第4次打开时,我点击了“取消”#39;在左下方停止循环
谢谢!