拍摄照片后停止预览

时间:2014-08-22 09:14:44

标签: c# windows-phone-8 photo

我的应用程序应该拍照,然后停在那里显示照片,将其保存在文件中并转到另一个视图。

我使用Microsoft.Devices.PhotoCamera并等待照片拍摄后CaptureCompleted拍摄照片,等待CaptureImageAvailable存储照片,然后继续拍摄。

Whan发生的是:在拍完照片之后,我再次进行了相机预览,这可能会让用户感到困惑(虽然显示进度条告诉他们“等待”。仍然不太好)并且在1-之后2秒钟再次显示拍摄的照片,然后移动到下一个视图。

是否有一种很好的方法可以禁用此预览功能? 如果我在第一次活动后丢弃PhotoCamera,它会挂起。如果我在第二次事件之后处理它,它似乎没有太大的区别..

修改

private void Cam_CaptureImageAvailable(object sender, Microsoft.Devices.ContentReadyEventArgs e)
{
    this.imageStream = e.ImageStream;

    Deployment.Current.Dispatcher.BeginInvoke(delegate
    {
        this.image = new BitmapImage();
        this.image.SetSource(this.imageStream);
        this.PreviewImage.Source = this.image;

        // Part where I store the image into a file.

        // Part where I navigate to the next view.
    });
}

我需要Dispatcher-Thing,因为设置图像和导航需要UI线程,但方法运行在另一个。 另外一个奇怪的观点是:PreviewImage与摄影机预览一起位于画布上并不重要。一旦拍摄照片并进行处理,它仍然会被覆盖...ôo

问题可能是我做了很多事情,UI永远不会刷新。我可以添加一个小睡眠(1-5ms),但这将再次异步。此外,我不能完全做到这一点,因为存储部分制作了一个“屏幕截图”,其中应包含最终图像,而不是相机预览图片。

EDIT2:

我看到了捕获本身的主要问题。它需要一张照片,显示一段时间,然后切换到相机预览,然后回到我显示的图片。

0 个答案:

没有答案