Compartilhar via


Como ajustar configurações de câmera ou microfone (HTML)

[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente ]

É possível ajustar várias das configurações da câmera ou do microfone; por exemplo, brilho, contraste, foco (na câmera) ou volume (no microfone). Na API Windows.Media.Capture, isso é feito pela recuperação de um objeto Windows.Media.Devices.VideoDeviceController ou Windows.Media.Devices.AudioDeviceController e pela configuração das propriedades do objeto.

Pré-requisitos

  • Você deve estar familiarizado com JavaScript.
  • O computador que você usa tem uma câmera.

Instruções

Etapa 1: Recuperar um controlador de dispositivo de vídeo ou áudio

O objeto Windows.Media.Capture.MediaCapture contém as propriedades VideoDeviceController e AudioDeviceController que permitem recuperar um objeto Windows.Media.Devices.VideoDeviceController ou Windows.Media.Devices.AudioDeviceController para controlar as configurações de um dispositivo de vídeo ou áudio.

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

Etapa 2: Definir as propriedades de um controlador de dispositivo de vídeo

A propriedade VideoDeviceController retorna um objeto Windows.Media.Devices.VideoDeviceController. Cada propriedade desse objeto, como brilho, contraste ou foco, retorna um objeto MediaDeviceControl com uma propriedade Capabilities que retorna um objeto MediaDeviceControlCapabilities. O objeto MediaDeviceControlCapabilities tem propriedades e métodos que permitem que você determine se uma propriedade é compatível com a câmera e quais são os valores máximo e mínimo da propriedade. Além disso, permitem que você obtenha e defina o valor da propriedade.

O exemplo a seguir recupera um objeto MediaDeviceControlCapabilities chamado brightnessCapabilities para a configuração de brilho de uma câmera de vídeo e o utiliza para aumentar o nível de brilho.

// 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.
}

Etapa 3: Definir as propriedades de um controlador de dispositivo de áudio

A propriedade AudioDeviceController retorna um objeto Windows.Media.Devices.AudioDeviceController. As propriedades desse objeto, como Muted e VolumePercent, podem ser usadas para ajustar diretamente as configurações do microfone.

O exemplo a seguir mostra como usar um objeto AudioDeviceController para ativar mudo/desativar mudo no microfone e para aumentar o volume do microfone.

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

Etapa 4: Exemplo completo

O exemplo a seguir mostra como ajustar as configurações de câmera e microfone ao capturar vídeo para um arquivo. O ponto de entrada neste exemplo é a função StartMediaCaptureSession. Essa função chama a função SetDevices, em que o brilho e o volume do microfone da câmera de vídeo são ajustados antes do início da sessão de captura. Para obter um exemplo de como criar a sessão de captura, veja Início rápido: capturando vídeo com uma 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;
     }
}

Comentários

Você também pode iniciar uma caixa de diálogo para ajustar as configurações da câmera chamando Windows.Media.Capture.CameraOptionsUI.Show e passando um objeto MediaCapture como parâmetro.