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.