2013-05-18 3 views
1

J'ai une application photo avec prise en charge Flashmode afin que je puisse décider d'utiliser autoFlash, pas de flash ou de flash par chaque image qui est prise. Mais non je veux mettre en œuvre que le flash éclaire la scène pour avoir une bonne vue sur les QR-Codes par exemple. L'utilisateur doit donc cliquer sur le bouton flashmode pour basculer les modes: Flashmode.Auto, FlashMode.On, FlashMode.Off et le nouveau "utiliser Flash LED comme une torche" ... Est-ce possible dans Windows Phone 7?/8?WP7/8 est-il possible d'allumer Flash Light avec PhotoCamera

thx

Répondre

0

Dans Windows Phone 8, vous pouvez le faire en mode natif, avec AudioVideoCaptureDevice et la propriété VideoTorchMode = On.

Sur Windows Phone 7, vous devez utiliser Reflection et charger la bibliothèque «Microsoft.Phone.Media.Extended» pour obtenir quelque chose comme AudioVideoCaptureDevice et allumer le flash pendant l'enregistrement d'une vidéo.

Cela pourrait être utile pour utiliser la lampe de poche dans WP7. http://www.locked.nl/wp7-flashlight-getting-started

+0

Thx, j'ai trouvé le tutoriel, mais je besoin d'un photocamera pour prendre un instantané et non pas une vidéo et ce ne fonctionne pas ensemble (mais il est également possible que je suis un newbee et ne comprends pas comment combiner cela) –

+0

PS: dans son tutoriel, il a dit "Il semble que l'utilisation de l'appareil photo pour construire une lampe de poche ne va pas travail." mais je ne crois pas cela si facile ... :) –

0

en XAML:

<VideoBrush x:Name="PART_VideoBrush"> 
          <VideoBrush.RelativeTransform> 
           <CompositeTransform x:Name="PART_VideoTransform" CenterX=".5"CenterY=".5" /> 
          </VideoBrush.RelativeTransform> 
         </VideoBrush> 

dans votre code derrière:

PhotoCamera _cam = new PhotoCamera(); 
    this._cam.Initialized += _cam_Initialized; 
    CameraVideoBrushExtensions.SetSource(this.PART_VideoBrush, this._cam); 
       this.PART_VideoTransform.Rotation = 90.0; 


private void _cam_Initialized(object sender, CameraOperationCompletedEventArgs e) 
     { 
      this._cam.FlashMode = FlashMode.Off;   //FrashMode.ON,Auto, RedEyeReduction 
     } 
+0

mhh ... pour voir quelque chose dans mon aperçu je dois faire 'PART_VideoBrush.SetSource (_photoCamera);' mais si je le fais le 'CameraVideoBrushExtensions.SetSource (this. PART_VideoBrush, this._cam); 'Lance un ' {System.InvalidOperationException: déjà initialisé. .SetSource ne peut être appelé qu'une seule fois sur l'instance de caméra. à Microsoft.Devices.Camera.InitializeVideoSession (brosse à VideoBrush) à Microsoft.Devices.CameraVideoBrushExtensions.SetSource (brosse à VideoBrush, appareil photo de l'appareil photo) à deepView.MainPage.OnPhotoCameraInitialized (Object sender, CameraOperationCompletedEventArgs e)} ' exception .. –

+0

Si je supprime la ligne 'PART_VideoBrush.SetSource (_photoCamera);' aucun aperçu n'est disponible et la led du flash n'allume pas continuellement la scène (FlashMode.on) ... –