随机支持MediaCapture VideoDeviceController属性功能

时间:2014-07-03 14:52:57

标签: c# windows-store-apps microsoft-metro

MediaCapture初始化时,我尝试设置一些属性(对比度,缩放,亮度),但仅限于主机设备支持。

var _captureMgr = new MediaCapture();
            await _captureMgr.InitializeAsync(new MediaCaptureInitializationSettings{
                    VideoDeviceId = devices[currentDevice].Id,                    
                });

            await _captureMgr.StartPreviewAsync();  

if (_captureMgr.VideoDeviceController.Brightness.Capabilities.Supported)
            {
                brightnessSlider.Minimum = _captureMgr.VideoDeviceController.Brightness.Capabilities.Min;
                brightnessSlider.Maximum = _captureMgr.VideoDeviceController.Brightness.Capabilities.Max;
                brightnessSlider.StepFrequency = _captureMgr.VideoDeviceController.Brightness.Capabilities.Step;
                brightnessSlider.Value = (brightnessSlider.Minimum + brightnessSlider.Maximum) / 2;
            }

首次启动亮度滑块时,实际上_captureMgr.VideoDeviceController.Brightness.Capabilities.Supported 为真

第二次(_captureManager.Dispose()之后)应用程序执行相同的代码,但_captureMgr.VideoDeviceController.Brightness.Capabilities.Supported false

考虑到调试时如果我在检查前暂停,第二次尝试也可行,这听起来很奇怪。检查和真正重新初始化之间似乎存在一些延迟,但Task.Delay(millis)无法正常工作。

我的 async / await 逻辑中是否存在问题?

0 个答案:

没有答案