zoukankan      html  css  js  c++  java
  • Window Phone 8手电筒

    一直想开发一个Wp8的手电筒程序,看了好多别人开发的基本上有以下问题:

    1、锁屏闪光灯关闭了

    2、闪光灯不停的闪烁。

    我就想开发一个锁屏也能用的手电筒,发现找资料那是相当的困难。找到的代码基本都不能令人满意,有的需要使用照相机,有的需要使用录像机,感觉都不是很爽。

    最后经过摸索,Ui界面只要一个按钮,就可以实现手电筒的开启和关闭,而且是常亮的,废话不多说了,上代码:

    Ui界面:

    一个按钮就Ok了:

    <Button Name="btnFlash" Content="闪光灯" Height="200" Click="btnFlash_Click_1"/>

    后台页面代码:

    private bool Flag = false;//闪关灯是否开启
    AudioVideoCaptureDevice avDevice = null;
    // 构造函数
    public MainPage()
    {
    InitializeComponent();
    }

    private async void btnFlash_Click_1(object sender, RoutedEventArgs e)//一定不要忘记加async关键字(因为下面的代码里面用到了await关键字)
    {
    if (Flag)
    {
    //闪光灯已开启 则释放资源(关闭闪光灯)
    if (avDevice != null)
    {
    avDevice.Dispose();
    Flag = false;
    }
    }
    else
    {
    var sensorLocation = CameraSensorLocation.Back;
    avDevice = await AudioVideoCaptureDevice.OpenAsync(sensorLocation, AudioVideoCaptureDevice.GetAvailableCaptureResolutions(sensorLocation).First());
    //打开闪关灯
    var supportedCameraModes = AudioVideoCaptureDevice
    .GetSupportedPropertyValues(sensorLocation, KnownCameraAudioVideoProperties.VideoTorchMode);
    if (supportedCameraModes.ToList().Contains((UInt32)VideoTorchMode.On))
    {
    avDevice.SetProperty(KnownCameraAudioVideoProperties.VideoTorchMode, VideoTorchMode.On);
    Flag = true;
    }
    }
    }

    还有一个特别需要注意的地方:

    一定不要忘记在WMAppManifest.xml里面加上这两个功能:

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

    至此一个完美的手电筒就完成了,当然,你可以把界面做得美观些,比如说做成腾讯安全管家里面的手电筒一样。

    转载请注明出处。

  • 相关阅读:
    field_automation源码分析
    uvm设计分析——field automation
    uvm设计分析——tlm
    gedit emacs
    C语言---数据结构(内建,数组,自定义)
    C语言---选择结构和循环结构
    C语言---变量与函数
    C语言---指针
    C语言--函数
    009-多线程-锁-JUC锁-Semaphore 信号量【控制一定数量的许可(permit)的方式,来达到限制通用资源访问的目的】
  • 原文地址:https://www.cnblogs.com/D-Wade-WP8/p/D-Wade-Wp8_20130701001.html
Copyright © 2011-2022 走看看