Try this one
private static VideoTorchMode _videoTorchMode = VideoTorchMode.Off; private AudioVideoCaptureDevice _videoRecordingDevice;
Torch check exists in the device.
private async void CheckTorch() { if(AudioVideoCaptureDevice.AvailableSensorLocations.Contains(CameraSensorLocation.Back) && AudioVideoCaptureDevice.GetSupportedPropertyValues(CameraSensorLocation.Back, KnownCameraAudioVideoProperties.VideoTorchMode).ToList().Contains((UInt32)VideoTorchMode.On)) { var temp = AudioVideoCaptureDevice.GetAvailableCaptureResolutions(CameraSensorLocation.Back)[0]; var resolution = new Windows.Foundation.Size(temp .Width, temp .Height); _videoRecordingDevice = await AudioVideoCaptureDevice.OpenAsync(CameraSensorLocation.Back, resolution); } else MessageBox.Show("Your device does not support torch"); }
To change the state of the burner
private void SetTorchMode(){ try { if (BackgroundHandler.Instance.IsBackTorchExist) { if (_videoTorchMode == VideoTorchMode.Off) { _videoRecordingDevice.SetProperty(KnownCameraAudioVideoProperties.VideoTorchMode, VideoTorchMode.On); _videoTorchMode = VideoTorchMode.On; } else { _videoRecordingDevice.SetProperty(KnownCameraAudioVideoProperties.VideoTorchMode, VideoTorchMode.Off); _videoTorchMode = VideoTorchMode.Off; } } } catch (Exception ex){ } }
source share