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

1、在 WMAppManifest.xml 文件中添加对ID_CAP_ISV_CAMERA和ID_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;
}

【WP8】WP8调用官方API使用LED灯的更多相关文章

  1. Cocos2d-x 3.x 在wp8中调用系统字体的解决方案

    问题和解决方法: 在使用cocos2d-x设计游戏的时候,字体是个很重要的部分.如果游戏中对字体没有太多的要求,就可以使用平台系统自带的字体,可以节省游戏的尺寸,以及减小游戏运行时所占用的内存.当加载 ...

  2. Beaglebone Black–GPIO 高低电平控制 LED 灯

    上一篇,运用 Linux 的 sysfs,控制本机上的 LED 灯,usr0 至 usr3,这次用 GPIO 控制外部的电路,点亮 LED 灯. 这次的全部材料: BBB 一台 购买 BBB 自带的 ...

  3. Beaglebone Black - 控制 BBB 板上的 LED 灯

    BBB 的板上有五个 LED 灯,一个电源,四个其他指示灯,usr0 至 usr3 .这次学习是控制 usr0 至 3 让它们亮着,熄灭,闪.算是个 Hello World 实验.非常简单. 需要的材 ...

  4. 让USB键盘的LED灯听你的!(不干扰使用)

    最近在研究一个课题,如何能利用键盘的led灯通道进行有效通信,那么首先要做的就是尝试能否在不影响键盘的情况下控制LED灯(num lock ,caps lock ,scroll lock)的使用. 首 ...

  5. 第7章 使用寄存器点亮LED灯

    第7章     使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...

  6. 第7章 使用寄存器点亮LED灯—零死角玩转STM32-F429系列

    第7章     使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...

  7. 起航,第一个程序——还是LED灯

    如同学基本语言一样,helloworld是很多语言的第一个程序.在嵌入式开发中,点亮LED灯也是各种架构和开发板的第一个程序,其中很多东西是和单片机例如stm32是类似的,只是,现在我们没有了库函数, ...

  8. 灵动微电子ARM Cortex M0 MM32F0010 GPIO 的配置驱动LED灯

    灵动微电子ARM Cortex M0 MM32F0010 GPIO的配置 目录: 1.前言 2.学习方法简要说明 3.要点提示 4.注意事项 5.MM32F0010系统时钟的配置 6.MM32F001 ...

  9. 嵌入式Linux学习入门:控制LED灯

    记录自己linux学习过程,让自己能够一直坚持下去 1.原理图分析: nLED_1, nLED_2, nLED_4, 给低电平则对应LED灯亮,高电平则对应LED灯灭, S3C2440芯片GPF4-G ...

随机推荐

  1. IIS7 MVC 403 禁止访问:访问被拒绝

  2. fastjson使用TypeReference示例

    package junit.test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; imp ...

  3. java中编码种类和区别

    为什么要编码 不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言.由于人类的语言有太 ...

  4. Java基础篇--字符串处理(StringBuffer)

    字符串处理 在Java中最常将字符串作为String类型对象来处理.同时String中也提供了很多操作字符串的函数(可自行查阅资料),而本篇将介绍StringBuffer如何操作字符串. String ...

  5. MySQL——SQL Mode详解

    简介 MySQL服务器能够工作在不同的SQL模式下,并能针对不同的客户端以不同的方式应用这些模式.这样,应用程序就能对服务器操作进行量身定制以满足自己的需求.这类模式定义了MySQL应支持的SQL语法 ...

  6. C语言 · 瓷砖铺放

    算法训练 瓷砖铺放   时间限制:1.0s   内存限制:512.0MB        锦囊1 递归或递推.   问题描述 有一长度为N(1<=N<=10)的地板,给定两种不同瓷砖:一种长 ...

  7. Android——ContentProvider

    xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android= ...

  8. eclipse配置google代码风格

    1.下载google code style的xml文件 地址:https://github.com/google/styleguide 导入xml文件 可能会遇到警告: 版本的问题,忽略即可. < ...

  9. JQuery控制radio选中和不选中方法总结

    一.设置选中方法 代码如下: $("input[name='名字']").get(0).checked=true; $("input[name='名字']"). ...

  10. 自然语言交流系统 phxnet团队 创新实训 个人博客 (十二)

    在本项目中关于天空盒子的使用的配置方法: 给场景添加天空盒  第二种方式   在菜单栏中选择:Edit->Render Setting,在保证不在选择场景中其它文件的前提下,Inspector面 ...