关闭网络摄像头闪光灯地铁应用程序C#

时间:2013-08-09 13:51:37

标签: c# windows-8 microsoft-metro .net-4.5

道歉,如果我错了,我正在开发使用C#和XAML for Windows 8的Metro应用程序,我的应用程序有能力捕获QR码图像,将其保存在图片库中,解码QR图像(我正在使用XZing .Net库解码)并显示QR图像中编码的内容。 如果我用手指阻挡网络摄像头闪光灯并捕获图像,那么每件事情都可以正常工作,但如果在捕获图像后闪光灯亮起,则XZing.Net无法解码。我有什么方法可以使用代码关闭闪光灯。请检查下面的代码

try
{
   MediaCapture m_mediaCaptureMgr = new MediaCapture();
   await m_mediaCaptureMgr.InitializeAsync();
  qrCameraElement.Source = m_mediaCaptureMgr;
  await m_mediaCaptureMgr.StartPreviewAsync();
}
catch(Exception)
{
}

“qrCameraElement”是CaptureElement的实例

在捕获按钮上单击

StorageFile m_photoStorageFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("QRImage.png", CreationCollisionOption.ReplaceExisting);
ImageEncodingProperties imageProperties = ImageEncodingProperties.CreatePng();
await m_mediaCaptureMgr.ClearEffectsAsync(MediaStreamType.Photo);
await m_mediaCaptureMgr.CapturePhotoToStorageFileAsync(imageProperties, m_photoStorageFile);

StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync("QRImage.png");

try
{
       using (IRandomAccessStream photoStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
{
     WriteableBitmap writeableBitmap = await BitmapFactory.New(1, 1).FromStream(photoStream);
                            writeableBitmap.SetSource(photoStream);
                            var barcodeReader = new BarcodeReader
                            {
                                PossibleFormats = new List<BarcodeFormat> { BarcodeFormat.QR_CODE },
                                TryHarder = true,
                                AutoRotate = true
                            };
                            var result = barcodeReader.Decode(writeableBitmap);
                            if(result != null)
                            {
                                //Do something
                            }
                            else 
                            {
                               //Display message as unable to read QR image
                            }
    }
    }
    catch(Exception e)
{
    Console.WriteLine(e.Message);
}

使用网络摄像头Flash时,我的result为空。请帮帮我。

0 个答案:

没有答案