我的应用程序应该拍照,然后停在那里显示照片,将其保存在文件中并转到另一个视图。
我使用Microsoft.Devices.PhotoCamera
并等待照片拍摄后CaptureCompleted
拍摄照片,等待CaptureImageAvailable
存储照片,然后继续拍摄。
是否有一种很好的方法可以禁用此预览功能? 如果我在第一次活动后丢弃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:
我看到了捕获本身的主要问题。它需要一张照片,显示一段时间,然后切换到相机预览,然后回到我显示的图片。