我使用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;
我做错了什么或SDK中的StartPreviewAsync(videoEncodingProperties)
方法根本不起作用?
答案 0 :(得分:1)
嗯,“正确”的命令序列解决了这个问题:
var properties = await App.CameraPreviewImageSource.StartPreviewAsync();
await App.CameraPreviewImageSource.VideoDeviceController.SetMediaStreamPropertiesAsync(MediaStreamType.VideoPreview, _previewProperties);
properties.Width = _previewProperties.Width;
properties.Height = _previewProperties.Height;