zoukankan      html  css  js  c++  java
  • 【WP8】WP8调用官方API使用LED灯

    在WP7中没有相关的API可以直接使用摄像头的LED等,只能通过录像时打开LED等来使用,在WP8中添加了相关的调用接口,可以方便的使用LED灯,并且支持后台,废话不多说,直接上代码

    1、在 WMAppManifest.xml 文件中添加对ID_CAP_ISV_CAMERAID_CAP_MICROPHONE功能的引用

    <Capabilities>
        <Capability Name="ID_CAP_ISV_CAMERA"/>
        <Capability Name="ID_CAP_MICROPHONE"/>
    </Capabilities>


    2、通过 AudioVideoCaptureDevice 类来操作摄像头的LED开关

    private AudioVideoCaptureDevice avDevice = null;
    
    try
    {
        if (avDevice == null)
        {
            //初始化
            avDevice = await AudioVideoCaptureDevice.OpenAsync(SensorLocation,
                                                               AudioVideoCaptureDevice
                                                                   .GetAvailableCaptureResolutions(
                                                                       SensorLocation).First());
    
            //获取支持的Mode
            IReadOnlyList<object> supportedCameraModes = AudioVideoCaptureDevice.GetSupportedPropertyValues(SensorLocation,
                                                                                                            KnownCameraAudioVideoProperties
                                                                                                                .VideoTorchMode);
            if (!supportedCameraModes.ToList().Contains((UInt32)VideoTorchMode.On))
            {
                //不支持LED灯,使用屏幕照明
                ShowWhiteScreenInsteadOfCameraTorch();
                return;
            }
            
            //打开LED灯
            avDevice.SetProperty(KnownCameraAudioVideoProperties.VideoTorchMode, VideoTorchMode.On);
            avDevice.SetProperty(KnownCameraAudioVideoProperties.VideoTorchPower,
                                 AudioVideoCaptureDevice.GetSupportedPropertyRange(SensorLocation,
                                                                                   KnownCameraAudioVideoProperties
                                                                                       .VideoTorchPower).Max);    
                                                                                       
            //关闭LED灯
            //avDevice.SetProperty(KnownCameraAudioVideoProperties.VideoTorchMode, VideoTorchMode.Off);
            //avDevice.SetProperty(KnownCameraAudioVideoProperties.VideoTorchPower,
            //                     AudioVideoCaptureDevice.GetSupportedPropertyRange(SensorLocation,
            //                                                                       KnownCameraAudioVideoProperties
            //                                                                           .VideoTorchPower).Min);    
            
            
        }
    }
    catch (Exception)
    {
        ShowWhiteScreenInsteadOfCameraTorch();
    }

    3、使用完手电筒的时候要释放资源

                if (avDevice != null)
                {
                    avDevice.Dispose();
                    avDevice = null;
                }
  • 相关阅读:
    【洛谷P4319】 变化的道路 线段树分治+LCT
    【洛谷P4585】 [FJOI2015]火星商店问题 线段树分治+可持久化trie
    Spring Framework Part4 self-summeries-a simplified MVC framework
    Spring Framework Part3 IoC and Dynamic Proxy
    Spring Framework Part2 IOC
    Big Data(一)分治思想
    排序算法(6.15)
    KMP算法(6.14)
    数据结构之查找(图片来源,老师PPT)
    MongoDB的基本操作
  • 原文地址:https://www.cnblogs.com/bomo/p/3365778.html
Copyright © 2011-2022 走看看