开启/关闭Flash好吧,我的问题很简单。我设法打开闪光灯(并保持打开状态)。但是,我仍然不确定如何关闭它(笑)。这是我的代码:varsensorLocation=CameraSensorLocation.Back;try{//获取AudioViceoCaptureDevicevaravDevice=awaitAudioVideoCaptureDevice.OpenAsync(sensorLocation,AudioVideoCaptureDevice.GetAvailableCaptureResolutions(sensorLocation).First());//打开手电筒varsupportedCameraModes=AudioVideoCaptureDevice.GetSupportedPropertyValues(sensorLocation,KnownCameraAudioVideoProperties.VideoTorchMode);如果(supportedCameraModes.ToList().Contains((UInt32)VideoTorchMode.On)){avDevice.SetProperty(KnownCameraAudioVideoProperties.VideoTorchMode,VideoTorchMode.On);//将闪光灯功率设置为最大值}else{turnWhiteScreen(true);}}catch(Exceptionex){//此设备不支持手电筒,而是在手电筒打开时显示白屏teScreen(真);}有任何想法吗?PS看起来你不能两次检索捕获设备(我不知道为什么),所以你应该将它存储在一个属性中:protectedAudioVideoCaptureDeviceDevice{get;放;}privateasyncvoidButtonTurnOn_Click(objectsender,RoutedEventArgse){varsensorLocation=CameraSensorLocation.Back;try{if(this.Device==null){//获取AudioVideoCaptureDevicethis.Device=awaitAudioVideoCaptureDevice.OpenAsync(sensorLocation,AudioVideoCaptureDevice.GetAvailableCaptureResolutions(sensorLocation).First}//());varsupportedCameraModes=AudioVideoCaptureDevice上的手电筒.GetSupportedPropertyValues(sensorLocation,KnownCameraAudioVideoProperties.VideoTorchMode);如果(supportedCameraModes.ToList().Contains((UInt32)VideoTorchMode.On)){this.Device.SetProperty(KnownCameraAudioVideoProperties.VideoTorchMode,VideoTorchMode.On);//将闪光功率设置为最大this.Device.SetProperty(KnownCameraAudioVideoProperties.VideoTorchPower,AudioVideoCaptureDevice.GetSupportedPropertyRange(sensorLocation,KnownCameraAudioVideoProperties.VideoTorchPower).Max);}else{turnWhiteScreen(true);}}catch(Exceptionex){//此设备不支持手电筒,而是显示白屏作为手电筒turnWhiteScreen(true);}}然后,关闭它:privatevoidButtonTurnOff_Click(objectsender,RoutedEventArgse){varsensorLocation=CameraSensorLocation.Back;try{//打开手电筒varsupportedCameraModes=AudioVideoCaptureDevice.GetSupportedPropertyValues(sensorLocation,KnownCameraAudioVideoProperties.VideoTorchMode);if(this.Device!=null&&supportedCameraModes.ToList().Contains((UInt32)VideoTorchMode.Off)){this.Device.SetProperty(KnownCameraAudioVideoProperties.VideoTorchMode,VideoTorchMode.Off);}else{turnWhiteScreen(false);}}catch(Exceptionex){//此设备不支持手电筒,而是显示白屏作为手电筒turnWhiteScreen(false);}}尝试这个私有静态VideoTorchMode_videoTorchMode=VideoTorchMode.Off;私人音频视频捕捉设备_videoRecordingDevice;检查设备中是否存在手电筒privateasyncvoidCheckTorch(){if(AudioVideoCaptureDevice.AvailableSensorLocations.Contains(CameraSensorLocation.Back)&&AudioVideoCaptureDevice.GetSupportedPropertyValues(CameraSensorLocation.Back,KnownCameraAudioVideoProperties.VideoTorchMode).ToList().Containstemp((UInt32)VideoTorchMode.On)){var}Show("您的设备不支持手电筒");}改变手电筒的状态以上就是C#学习教程的全部内容:打开/关闭手电筒。遵循—privatevoidSetTorchMode(){try{if(BackgroundHandler.Instance.IsBackTorchExist){if(_videoTorchMode==VideoTorchMode.Off){_videoRecordingDevice.SetProperty(KnownCameraAudioVideoProperties.VideoTorchMode,VideoTorchMode.On);TorchMode=VideoTorchMode.On;}else{_videoRecordingDevice.SetProperty(KnownCameraAudioVideoProperties.VideoTorchMode,VideoTorchMode.Off);_videoTorchMode=VideoTorchMode.Off;}}}catch(Exceptionex){}}侵权请点右联系管理员删除如转载请注明出处:
