【问题标题】:Captured photos are black when using MediaCapture on Windows Phone 8.1在 Windows Phone 8.1 上使用 MediaCapture 时拍摄的照片是黑色的
【发布时间】:2015-02-03 14:37:43
【问题描述】:

我正在使用 MediaCapture 捕捉照片并存储它们。它在模拟器中工作。但在真机(诺基亚 Lumia 530)上运行该应用程序时,拍摄的照片只是黑色。它们具有正确的大小并且文件具有一定的字节长度,但是在显示照片时它是黑色的。请注意,我不使用 Silverlight,而是使用 MediaCapture。使用默认相机应用程序时,手机上的相机可以工作。该应用的清单包括“图片库”和“网络摄像头”功能。

有人知道哪里出了问题吗?

这是我使用的测试代码:

using (var mediaCapture = new MediaCapture())
{
   await mediaCapture.InitializeAsync();

   ImageEncodingProperties imageFormat = ImageEncodingProperties.CreateJpeg();
   StorageFile photoFile = await KnownFolders.PicturesLibrary.CreateFileAsync("TestPhoto.jpg", CreationCollisionOption.GenerateUniqueName);
   await mediaCapture.CapturePhotoToStorageFileAsync(imageFormat, photoFile);

   BitmapImage bitmap = new BitmapImage();
   using (var photoStream = await photoFile.OpenReadAsync())
   {
      bitmap.SetSource(photoStream);
   }
}

编辑

我找到了解决方案。如果我们有一个 CaptureElement,则正确捕获照片,将其源设置为 MediaCapture 对象,在拍照前调用 MediaCapture.StartPreviewAsync,拍摄照片(使用 CapturePhotoToStorageFileAsync),最后调用 StopPreviewAsync。似乎 MediaCapture 需要一个现有的(和显示的)预览才能捕捉照片。奇怪的是,这没有记录在案,并且在没有预览的情况下使用 CapturePhotoToStorageFileAsync 不会引发异常。

【问题讨论】:

  • 手机连接电脑,或者复制文件到图片库时,是不是也黑了?您在拍摄照片之前检查过预览吗?​​
  • 我检查过了。图片库中的文件也是黑色的。在此期间,我找到了解决方案。查看我的编辑。
  • 您可以将其作为答案发布,而不是将答案放入问题中。它可能会帮助其他一些人。
  • 是的。如果有其他人在回答,我想等待。

标签: windows-phone windows-phone-8.1


【解决方案1】:

如果我们有 CaptureElement,则正确捕获照片,将其源设置为 MediaCapture 对象,在拍摄照片之前调用 MediaCapture.StartPreviewAsync,拍摄照片(使用 CapturePhotoToStorageFileAsync),最后调用 StopPreviewAsync。似乎 MediaCapture 需要一个现有的(和显示的)预览才能捕捉照片。奇怪的是,这没有记录在案,并且在没有预览的情况下使用 CapturePhotoToStorageFileAsync 不会引发异常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    • 2015-10-31
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多