Захваченные фотографии являются черными при использовании MediaCapture на Windows Phone 8.1

Я использую MediaCapture для захвата фотографий и их хранения. Работает в эмуляторе. Но при запуске приложения на реальном телефоне (Nokia 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 без предварительного просмотра не вызывает исключение.

Ответы на вопрос(1)

Ваш ответ на вопрос