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" />

至此一個完美的手電筒就完成了,當然,你可以把界面做得美觀些,比如說做成騰訊安全管家里面的手電筒一樣。

轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM