1

我正在使用CameraPreviewImageSource.PreviewFrameAvailable事件通过计算每帧的平均亮度来确定闪光。出于我的目的,我不需要大框架,但使用默认设置StartPreviewAsync()方法生成大小为 1280*720px 的框架。我尝试使用StartPreviewAsync(videoEncodingProperties)但每次遇到异常HRESULT:0x80040155 Interface not registered

我可以通过底层对象设置预览帧大小VideoDeviceController,但它看起来有点过于复杂,尤其是我必须以神奇的顺序设置属性(否则退出应用程序后相机会损坏)。

await App.CameraPreviewImageSource.VideoDeviceController.SetMediaStreamPropertiesAsync(MediaStreamType.VideoPreview, _previewProperties);
var properties = await App.CameraPreviewImageSource.StartPreviewAsync();
properties.Width = _previewProperties.Width;
properties.Height = _previewProperties.Height;

我做错了什么还是StartPreviewAsync(videoEncodingProperties)SDK中的方法根本不起作用?

4

1 回答 1

1

好吧,“正确”的命令序列解决了这个问题:

var properties = await App.CameraPreviewImageSource.StartPreviewAsync();
await App.CameraPreviewImageSource.VideoDeviceController.SetMediaStreamPropertiesAsync(MediaStreamType.VideoPreview, _previewProperties);
properties.Width = _previewProperties.Width;
properties.Height = _previewProperties.Height;
于 2015-12-08T14:22:09.967 回答