Windows 8 : développer sa première application Modern UI App Windows 8 : interopérer avec la webcam

Nous allons à présent ajouter le code qui prend une photo à partir de la webcam ; vous risquez d'être surpris par sa simplicité. Commencez par ajouter trois instructions using supplémentaires :

 using System.Threading.Tasks;
using Windows.Media.Capture;
using Windows.Storage.Streams;

Le code de capture est donné au Listing 2.1. Il remplace la méthode vide qui a été générée pour le traitement de l'événement click à partir du balisage XAML. Si vous développez l'application à partir de zéro, saisissez le code correspondant, puis compilez, déployez et exécutez l'application en appuyant sur F5. Lors de la première exécution, vous devrez autoriser l'accès à la webcam (voir Figure 2.10).

figure 2.10 - obtenir l'autorisation d'utiliser la webcam.
Figure 2.10 - Obtenir l'autorisation d'utiliser la webcam. © Pearson


En quelques lignes de code, nous avons été en mesure d'activer la webcam de l'utilisateur, d'autoriser celui-ci à prendre une photo et à intégrer celle-ci dans l'application. Si la webcam est absente, une page s'affiche pour vous demander de connecter un tel périphérique. Sinon, cliquez simplement sur l'image présentée pour prendre une photo.

Listing 2.1 : Code de prise d'une photo à partir de la webcam intégrée

 private async Task LoadBitmap(IRandomAccessStream stream)
{
_writeableBitmap = new WriteableBitmap(1, 1);
_writeableBitmap.SetSource(stream);
_writeableBitmap.Invalidate();
await Dispatcher.RunAsync(
Windows.UI.Core.CoreDispatcherPriority.Normal,
() => ImageTarget.Source = _writeableBitmap);
}

public async void CaptureButton_Click_1(object sender, RoutedEventArgs e)
{
var camera = new CameraCaptureUI();
var result = await camera.CaptureFileAsync(CameraCaptureUIMode.Photo);
if (result != null)
{
await LoadBitmap(await result.OpenAsync(
Windows.Storage.FileAccessMode.Read));
}
}

Pour arrêter l'application, vous pouvez balayer vers le bas à partir de son bord supérieur ou appuyer sur Alt+F4. Cette action termine l'application mais n'interrompt pas le débogueur. Pour cela, vous devez cliquer sur l'icône Stop dans Visual Studio 2012 ou appuyer sur Maj+F5.

ASTUCE

Dans Windows 8, la plupart des gestes disposent d'un équivalent clavier et souris. Par exemple, si vous balayez depuis le bord droit de l'écran, vous affichez la barre des icônes. Vous pouvez obtenir le même résultat en positionnant le pointeur de la souris au-dessus de l'extrémité droite de la barre des tâches. Si vous préférez employer le clavier, appuyez simultanément sur les touches Windows+C. Si, pendant que vous déboguez l'application, vous souhaitez revenir au bureau, appuyez sur la combinaison de touches Windows+D. Si votre ordinateur est équipé de plusieurs moniteurs et si vous souhaitez changer celui sur lequel le menu d'accueil apparaît, maintenez enfoncée la touche Windows et appuyez sur Page haut ou Page bas.