Condividi tramite


Come regolare le impostazioni per fotocamera o microfono (HTML)

[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]

Puoi regolare varie impostazioni per la videocamera o il microfono, ad esempio luminosità, contrasto, messa a fuoco (nella videocamera) o volume (nel microfono). Nell'API Windows.Media.Capture queste regolazioni vengono eseguite recuperando un oggetto Windows.Media.Devices.VideoDeviceController o Windows.Media.Devices.AudioDeviceController e impostando le proprietà dell'oggetto.

Prerequisiti

  • Occorre avere già familiarità con JavaScript.
  • Se il computer in uso dispone di una videocamera.

Istruzioni

Passaggio 1: Ottenere un controller di dispositivo video o audio

L'oggetto Windows.Media.Capture.MediaCapture contiene le proprietà VideoDeviceController e AudioDeviceController che consentono di ottenere un oggetto Windows.Media.Devices.VideoDeviceController o Windows.Media.Devices.AudioDeviceController per il controllo delle impostazioni di un dispositivo video o 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;

Passaggio 2: Impostare le proprietà di un controller di dispositivo video

La VideoDeviceController proprietà restituisce un oggetto Windows.Media.Devices.VideoDeviceController. Le proprietà di questo oggetto, come ad esempio luminosità, contrasto o messa a fuoco, restituiscono un oggetto MediaDeviceControl che include una proprietà Capabilities, che a sua volta restituisce un oggetto MediaDeviceControlCapabilities. L'oggetto MediaDeviceControlCapabilities dispone di proprietà e metodi che consentono di determinare se una proprietà è supportata dalla videocamera e quali sono i valori minimo e massimo della proprietà, nonché di ottenere e impostare il valore della proprietà.

Nell'esempio seguente si ottiene un oggetto MediaDeviceControlCapabilities denominato brightnessCapabilities per l'impostazione della luminosità di una videocamera, che si utilizza per aumentare il livello di 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.
}

Passaggio 3: Impostare le proprietà di un controller di dispositivo audio

La proprietà AudioDeviceController restituisce un oggetto Windows.Media.Devices.AudioDeviceController. Le proprietà di questo oggetto, ad esempio Muted e VolumePercent, possono essere utilizzate direttamente per regolare le impostazioni del microfono.

L'esempio seguente illustra come utilizzare un oggetto AudioDeviceController per attivare/disattivare l'audio e per aumentare il volume di un microfono.

// 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);
}

Passaggio 4: Esempio completo

L'esempio seguente illustra come regolare le impostazioni per videocamera e microfono per l'acquisizione di video in un file. Il punto di ingresso in questo esempio è la funzione StartMediaCaptureSession. Questa funzione chiama a sua volta la funzione SetDevices per la regolazione della luminosità della videocamera e del volume del microfono prima dell'inizio della sessione di acquisizione. Per un esempio di come creare una sessione di acquisizione, vedi Guida introduttiva: Acquisizione video con la 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;
     }
}

Osservazioni

È inoltre possibile lanciare una finestra di dialogo per l'impostazione della videocamera chiamando la funzione Windows.Media.Capture.CameraOptionsUI.Show e passando un oggetto MediaCapture come parametro.