Comment mettre la vidéo en miroir (XAML)

[ Cet article est destiné aux développeurs Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]

Mettre en miroir l’image d’aperçu est utile pour les applications de conférences et de chats vidéo. En règle générale, l’utilisateur souhaite voir un reflet de lui-même. L’image « correcte » (non mise en miroir) peut paraître étrange, car nous sommes habitués à nous voir dans un miroir.

Remarque   Vous pouvez utiliser les méthodes SetPreviewMirroring et GetPreviewMirroring, comme décrit dans les instructions ci-dessous, pour faire pivoter l’image d’aperçu horizontalement. Toutefois, pour une application Windows Runtime en JavaScript, le meilleur moyen, et aussi le plus efficace, de mettre en miroir l’aperçu d’une vidéo consiste à plutôt utiliser la propriété msHorizontalMirror de l’objet video.

Instructions

Étape 1: Créer l’objet MediaCapture

L’objet MediaCapture contient les méthodes, les propriétés et les opérations asynchrones (Initialize Async, Start, Stop, etc.) dont vous avez besoin pour mettre en miroir l’image d’aperçu.

    oMediaCapture = new Windows.Media.Capture.MediaCapture();
    oMediaCapture.initializeAsync().then(function (result) {

Étape 2: Définir la mise en miroir de l’aperçu

La classe MediaCapture fournit les méthodes permettant de gérer l’orientation horizontale de l’image d’aperçu. La méthode GetPreviewMirroring indique si l’image d’aperçu est un miroir. La méthode SetPreviewMirroring active ou désactive la mise en miroir horizontale du flux d’aperçu vidéo.

L’exemple suivant permet de déterminer si la mise en miroir horizontale est activée. La mise en miroir horizontale est activée si elle est désactivée.

    if( !oMediaCapture.getPreviewMirroring() )
        oMediaCapture.setPreviewMirroring(true);

Étape 3: Commencer l’aperçu

Pour commencer l’aperçu de la vidéo, appelez la méthode startPreviewAsync.

// Start Previewing
await _mediaCapture.StartPreviewAsync();
(App.Current as App).IsPreviewing = true;
    // Start Previewing
    var startPreviewOperation = oMediaCapture.startPreviewAsync();

Étape 4: Arrêter l’aperçu

Pour arrêter l’aperçu, appelez la méthode StopPreviewAsync.

    // Set the handler for the StopPreviewOperation.    
    var stopPreviewOperation = oMediaCapture.stopPreviewAsync();

Étape 5: Exemple complet

L’exemple suivant montre comment afficher un aperçu d’une vidéo avec la mise en miroir horizontale. Le point d’entrée de cet exemple est la fonction StartPreview. Cette fonction appelle une fonction pour activer la mise en miroir horizontale et crée le gestionnaire de startPreviewOperation pour commencer l’opération d’aperçu.

var oMediaCapture;
var profile;

function turnMirroringOn()
{
    if( !oMediaCapture.getPreviewMirroring() )
        oMediaCapture.setPreviewMirroring(true);
}

function OnStartPreviewComplete(startPreviewOperation)
{
    // This method does not return a value.
    //
    startPreviewOperation.GetResults();
    // Set the handler for the StopPreviewOperation.    
    var stopPreviewOperation = oMediaCapture.stopPreviewAsync();

    stopPreviewOperation.Completed = OnStopPreviewComplete;
    stopPreviewOperation.Start();

    startPreviewOperation.Close();
}

function OnStopPreviewComplete(stopPreviewOperation)
{
    // This method does not return a value.
    //
    stopPreviewOperation.GetResults();

    stopPreviewOperation.Close();
}

function startPreview()
{

    oMediaCapture = new Windows.Media.Capture.MediaCapture();
    oMediaCapture.initializeAsync().then(function (result) {
        createProfile();
    }, errorHandler);
    // Enable horizontal mirroring.
    //
    turnMirroringOn();

    // Start Previewing
    var startPreviewOperation = oMediaCapture.startPreviewAsync();
    startPreviewOperation.Completed = OnStartPreviewComplete;
    startPreviewOperation.Start();
}

Rubriques associées

Exemple de capture multimédia

MediaCapture