如何使用XLabs连续拍照

时间:2017-05-02 10:21:22

标签: ios xamarin.forms visual-studio-mac xlabs

目前,我正在使用能够拍照的共享库开发跨平台应用。我使用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;在左下方停止循环

enter image description here

谢谢!

0 个答案:

没有答案