Toggle flashlight in Windows Phone 8.1

前端 未结 5 1041
面向向阳花
面向向阳花 2020-12-11 07:30

Can anyone say how to toggle flashlight in Windows Phone 8.1 using C#? It seems like there are lots of API changes in Windows Phone 8.1 and most of the API\'s in WP 8.0 are

5条回答
  •  [愿得一人]
    2020-12-11 08:22

    I'm able to use TorchControl on my Lumia 820 like this - first you have to specify which camera you will use - the default is front (I think that's why you may find some problems) and we want the back one - the one with flash light. Sample code:

    // edit - I forgot to show GetCameraID:
    private static async Task GetCameraID(Windows.Devices.Enumeration.Panel desiredCamera)
    {
        DeviceInformation deviceID = (await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture))
            .FirstOrDefault(x => x.EnclosureLocation != null && x.EnclosureLocation.Panel == desiredCamera);
    
        if (deviceID != null) return deviceID;
        else throw new Exception(string.Format("Camera of type {0} doesn't exist.", desiredCamera));
    }
    
    // init camera
    async private void InitCameraBtn_Click(object sender, RoutedEventArgs e)
    {
        var cameraID = await GetCameraID(Windows.Devices.Enumeration.Panel.Back);
        captureManager = new MediaCapture();
    
        await captureManager.InitializeAsync(new MediaCaptureInitializationSettings
            {
                StreamingCaptureMode = StreamingCaptureMode.Video,
                PhotoCaptureSource = PhotoCaptureSource.VideoPreview,
                AudioDeviceId = string.Empty,
                VideoDeviceId = cameraID.Id
            });
    }
    
    // then to turn on/off camera
    var torch = captureManager.VideoDeviceController.TorchControl;
    if (torch.Supported) torch.Enabled = true;
    
    // turn off
    if (torch.Supported) torch.Enabled = false;
    

    Note that it's a good idea to call captureManager.Dispose() after you finish with it.


    Note also that on some phones to turn on torch/flashlight you will need to start preview first.

提交回复
热议问题