3

目前我正在使用能够拍照的共享库开发一个跨平台应用程序。我正在使用 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 张照片。相机打开四次。拍完每张照片后,我点击右下角的“使用照片”,当相机第四次打开时,我点击左下角的“取消”停止循环

在此处输入图像描述

谢谢!

4

0 回答 0