Настройка параметров камеры и микрофона (HTML)
[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. В случае разработки приложений для Windows 10 см. раздел последняя документация]
Вы можете настроить следующие параметры: яркость, контрастность, фокусное расстояние для камеры или громкость звука для микрофона. В API Windows.Media.Capture для этого необходимо получить объект Windows.Media.Devices.VideoDeviceController или Windows.Media.Devices.AudioDeviceController и настроить параметры этого объекта.
Необходимые условия
- Вы должны быть знакомы с языком JavaScript.
- К вашему компьютеру должна быть подключена камера.
Инструкции
Этап 1: Получение объекта контроллера видео- или звукового устройства
Объект Windows.Media.Capture.MediaCapture имеет свойства VideoDeviceController и AudioDeviceController, позволяющие получить объекты Windows.Media.Devices.VideoDeviceController или Windows.Media.Devices.AudioDeviceController, с помощью которых производится настройка параметров видео- или звукового устройства.
// 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;
Этап 2: Установка свойств объекта контроллера видеоустройства
Свойство VideoDeviceController возвращает объект Windows.Media.Devices.VideoDeviceController. Свойства этого объекта — яркость, контрастность и фокусное расстояние — возвращают объект MediaDeviceControl, имеющий свойство Capabilities. Это свойство возвращает объект MediaDeviceControlCapabilities. Объект MediaDeviceControlCapabilities имеет свойства и методы, с помощью которых можно: определить, поддерживается ли то или иное свойство для данной камеры; узнать максимальное и минимальное значения этого свойства; получить и задать значение свойства.
В следующем примере показано, как получить объект MediaDeviceControlCapabilities (обозначен как переменная brightnessCapabilities) для регулировки яркости видеокамеры и с его помощью повысить уровень яркости.
// 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.
}
Этап 3: Установка свойств объекта контроллера звукового устройства
Свойство AudioDeviceController возвращает объект Windows.Media.Devices.AudioDeviceController. Свойства этого объекта Muted и VolumePercent используются для непосредственной настройки параметров микрофона.
В следующем примере показано, как с помощью объекта AudioDeviceController выключить и включить микрофон, а также повысить его чувствительность.
// 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);
}
Этап 4: Полный пример
В следующем примере показано, как настроить параметры камеры и микрофона при захвате видео в файл. Исходной точкой данного примера является функция StartMediaCaptureSession. Она вызывает функцию SetDevices, в которой производится настройка яркости камеры и чувствительности микрофона перед сеансом захвата. Пример создания сеанса захвата см. в разделе Краткое руководство: захват видео с использованием 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;
}
}
Примечания
Кроме того, можно вызвать диалоговое окно настройки параметров камеры, вызвав метод Windows.Media.Capture.CameraOptionsUI.Show и передав ему в качестве параметра объект MediaCapture.