CameraPreviewImageSource.StartPreviewAsync不能与videoEncodingProperties一起使用

时间:2015-06-29 19:02:32

标签: lumia-imaging-sdk

我使用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)方法根本不起作用?

1 个答案:

答案 0 :(得分:1)

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

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