Я использую MediaCapture вместе с CapturePreview для создания потока предварительного просмотра на планшете Surface Pro. Я делаю фотографии периодически с таймером, используя
CapturePhotoToStreamAsync()
Когда бы ни была сделана фотография, поток предварительного просмотра слегка уменьшается, как будто он меняет разрешение или соотношение сторон или что-то подобное.
Я обнаружил эту проблему , которая звучит точно так же, но я не могу решить ее независимо от установленных разрешений.
Это бит кода, который я должен получить Bitmap
объектов из потока:
using (var randomAccessStream = new InMemoryRandomAccessStream())
{
await mediaCap.CapturePhotoToStreamAsync(imageProps, randomAccessStream);
randomAccessStream.Seek(0);
using (var ioStream = randomAccessStream.AsStream())
{
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = ioStream;
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
bitmapImage.EndInit();
bitmapImage.Freeze();
}
}
imageProps
устанавливается на 1280x720, то же разрешение, что и у объекта предварительного просмотра. Это не было бы большой проблемой, если бы это происходило только время от времени, но мне нужно часто захватывать кадры (несколько раз в секунду), и это выглядит очень неприятно.
Edit:
Следует отметить, что проблема возникает только на упомянутом планшете Surface Pro (2736x1824 @ 200%), но не возникает на экране 1920x1080.