Comment ajuster les paramètres de la caméra ou du microphone (HTML)

[ 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 ]

Vous pouvez régler différents paramètres sur la caméra ou le microphone, comme la luminosité, le contraste, la focale (sur la caméra) ou le volume (sur le microphone). Dans l’API Windows.Media.Capture, vous effectuez cela en récupérant un objet Windows.Media.Devices.VideoDeviceController ou Windows.Media.Devices.AudioDeviceController et en réglant les propriétés de l’objet.

Prérequis

  • Vous devez être familiarisé avec JavaScript.
  • L’ordinateur que vous utilisez possède une caméra.

Instructions

Étape 1: Récupérer un contrôleur de périphérique vidéo ou audio

L’objet Windows.Media.Capture.MediaCapture contient les propriétés VideoDeviceController et AudioDeviceController qui vous permettent de récupérer un objet Windows.Media.Devices.VideoDeviceController ou Windows.Media.Devices.AudioDeviceController pour contrôler les paramètres d’un périphérique vidéo ou audio.

// Create the media capture object.
    var oMediaCapture = new Windows.Media.Capture.MediaCapture();
    oMediaCapture.initializeAsync();
    
// Retrieve a video device controller.
var videoDeviceController = oMediaCapture.videoDeviceController;

// Retrieve an audio device controller.
var audioDeviceController = oMediaCapture.audioDeviceController;

Étape 2: Définir les propriétés d’un contrôleur de périphérique vidéo

La propriété VideoDeviceController renvoie un objet Windows.Media.Devices.VideoDeviceController. Les propriétés de cet objet comme la luminosité, le contraste ou la focale renvoient chacune un objet MediaDeviceControl avec une propriété Capabilities qui renvoie un objet MediaDeviceControlCapabilities. L’objet MediaDeviceControlCapabilities a des propriétés et des méthodes qui vous permettent de déterminer si une propriété est prise en charge pour cette caméra, ce que sont les valeurs minimales et maximales de la propriété, et qui vous permettront d’obtenir et de définir la valeur de la propriété.

L’exemple suivant récupère un objet MediaDeviceControlCapabilities appelé brightnessCapabilities pour le paramètre de luminosité d’une caméra vidéo, et l’utilise pour augmenter le niveau de luminosité.

// Retrieve the brightness capabilites of the video camera
var brightnessCapabilities = videoDeviceController.brightness.capabilities; 

//
// Determine if the video camera supports adjustment of the brightness setting.
//
if (brightnessCapabilities.supported)
{
  var brightness;

  //
  // Retrieve the current brightness value.
  //

  if (videoDeviceController.brightness.tryGetValue( brightness ))
  {
    //
    // Get the minimum, maximum and step size for the brightness value. 
    // 
    var min = brightnessCapabilities.min;
    var max = brightnessCapabilities.max;
    var step = brightnessCapabilities.step;
  
    //
    // Increase the brightness value by one step as long as the new value is less than or equal to the maximum.
    //

    if( (brightness + step) <= max )
    {
       if( brightnessCapabilities.trySetValue( brightness + step ) )
       {
         // The brightness was successfully increased by one step.
       }
       else
       {
         // The brightness value couldn't be increased.
       }
    }
    else
    {
       // The brightness value is greater than the maximum.
    }
  }
  else
  {
    // The brightness value couldn't be retrieved.
  }
}
else
{
  // Setting the brightness value is not supported on this camera.
}

Étape 3: Définir les propriétés d’un contrôleur de périphérique audio

La propriété AudioDeviceController renvoie un objet Windows.Media.Devices.AudioDeviceController. Les propriétés de cet objet comme Muted, et VolumePercent peuvent être utilisées pour ajuster directement les paramètres du microphone.

L’exemple suivant montre comment utiliser un objet AudioDeviceController pour activer/désactiver le son, et monter le volume du microphone.

// Mute the microphone.
audioDeviceController.muted = true;

// Un-mute the microphone.
audioDeviceController.muted = false;

// Get the current volume setting.
var currentVolume = audioDeviceController.volumePercent;

// Increase the volume by 10 percent, if possible.
if (currentVolume <= 90) {
    audioDeviceController.volumePercent = (currentVolume + 10);
}

Étape 4: Exemple complet

L’exemple suivant montre comment ajuster les paramètres de la caméra et du microphone lors de la capture d’une vidéo dans un fichier. Le point d’entrée de cet exemple est la fonction StartMediaCaptureSession. Cette fonction appelle ensuite la fonction SetDevices où la luminosité et le volume du microphone de la caméra vidéo sont réglés avant le début de la session de capture. Pour un exemple de création de session de capture, voir Démarrage rapide : capture vidéo à l’aide de l’API MediaCapture.

//
// Initialize MediaCapture global object   
//
var oMediaCapture;

function startMediaCaptureSession() {
    oMediaCapture = new Windows.Media.Capture.MediaCapture();
    oMediaCapture.initializeAsync().then (function (result) {
        // Set the audio and video.
        setDevices();
    }, errorHandler);   
}

function setDevices()
{
      
     //
     // Obtain Video and Audio device controllers. 
     //
     var videoDeviceController = oMediaCapture.videoDeviceController;
     var audioDeviceController = oMediaCapture.audioDeviceController;

     //
     // Adjust Video and Audio device settings. 
     //

     //
     // Increase the brightness value by one step as long as the new value is less than or equal to the maximum.
     //
     var brightness;
     var brightnessCapabilities = videoDeviceController.brightness.capabilities;

     brightness = videoDeviceController.brightness.tryGetValue();
               
     if( (brightness.value + brightnessCapabilities.step) <= brightnessCapabilities.max )
     {
         if (videoDeviceController.brightness.trySetValue(brightness + brightnessCapabilities.step))
         {
             // The brightness value was successfully increased by one step.             
         }
         else
         {
             // The brightness value could not be increased.             
         }
     }
     else
     {
         // The new brightness value would be greater than the maximum value.        
     }
           

     //
     // Increase the microphone volume by 10 percent if possible.
     //
     var increase = 10;
     var currentVolume = audioDeviceController.volumePercent;
     if (currentVolume + increase <= 100) {
         audioDeviceController.volumePercent += increase;
     }
}

Remarques

Vous pouvez également lancer un dialogue pour régler les paramètres de la caméra en appelant Windows.Media.Capture.CameraOptionsUI.Show, et en passant un objet MediaCapture comme un paramètre.