我正在开发Surface RT中使用的Windows应用商店应用。 这基本上是一份调查问卷,每份调查问卷需要3张照片。 这就是我预览和拍照的方式
async public void TakePictureFor(RackAuditQuestions q)
{
CameraCaptureUI cameraUI = new CameraCaptureUI();
cameraUI.PhotoSettings.AllowCropping = false;
cameraUI.PhotoSettings.MaxResolution = CameraCaptureUIMaxPhotoResolution.MediumXga;
Windows.Storage.StorageFile capturedMedia = await cameraUI.CaptureFileAsync(CameraCaptureUIMode.Photo);
if (capturedMedia != null)
{
using (var streamCamera = await capturedMedia.OpenAsync(FileAccessMode.Read))
{
BitmapImage bitmapCamera = new BitmapImage();
bitmapCamera.SetSource(streamCamera);
// This display the image in a bound object to the XAML
q.Image = bitmapCamera;
int width = bitmapCamera.PixelWidth;
int height = bitmapCamera.PixelHeight;
q.pictureStream = await capturedMedia.OpenAsync(FileAccessMode.Read);
}
}
}
在大量使用约7天后*从触摸屏幕开始直到控制返回给用户,拍摄单张照片大约需要18秒。我做了video of this. To illustrate it better。
*大量使用我的意思是每天100张照片。重新安装应用程序使一切正常,但不重新启动表面或应用程序
由于拍照过程基本上委托给操作系统,因此我不在乎。我不知道在哪里看。任何想法
答案 0 :(得分:0)
如果你正在使用CaptureFileAsync(就像我一样),那么这里有一个存储在temp文件夹中的图片副本: C:\用户{用户名} \应用程序数据\本地\ {包你的包,GUID} \ TempState (您在Package.appxmanifest中设置包的名称)
您可以通过
获取代码中的文件列表StorageFolder temp = ApplicationData.Current.TemporaryFolder;
IReadOnlyList<StorageFile> fileList = await temp.GetFilesAsync();
我只是在将数据提交到服务器时将它们全部删除,但这取决于您。 Hoipe这可以帮助任何陷入这个问题的人,因为它帮助了我。