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.