So wird’s gemacht: Anpassen von Kamera- oder Mikrofoneinstellungen (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation ]

Sie können verschiedene Einstellungen für die Kamera und das Mikrofon anpassen, zum Beispiel Helligkeit, Kontrast, Fokus (an der Kamera) oder Lautstärke (am Mikrofon). In der Windows.Media.Capture-API erfolgt dies durch das Abrufen eines Windows.Media.Devices.VideoDeviceController- oder Windows.Media.Devices.AudioDeviceController-Objekts und das Festlegen der Eigenschaften des Objekts.

Voraussetzungen

  • Sie sollten mit JavaScript vertraut sein.
  • Ihr Computer ist mit einer Kamera ausgestattet.

Anweisungen

Schritt 1: Abrufen eines Video- oder Audiogerätecontrollers

Das Windows.Media.Capture.MediaCapture-Objekt enthält die Eigenschaften VideoDeviceController und AudioDeviceController, mit denen Sie ein Windows.Media.Devices.VideoDeviceController- oder ein Windows.Media.Devices.AudioDeviceController-Objekt zum Steuern der Einstellungen eines Video- oder Audiogeräts abrufen können.

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

Schritt 2: Festlegen der Eigenschaften eines Videogerätecontrollers

Die VideoDeviceController-Eigenschaft gibt ein Windows.Media.Devices.VideoDeviceController-Objekt zurück. Die Eigenschaften dieses Objekts wie Helligkeit, Kontrast und Fokus geben jeweils ein MediaDeviceControl-Objekt mit einer Capabilities-Eigenschaft zurück, die wiederum ein MediaDeviceControlCapabilities-Objekt zurückgibt. Das MediaDeviceControlCapabilities-Objekt enthält Eigenschaften und Methoden, mit denen Sie festlegen können, ob eine Eigenschaft für die betreffende Kamera unterstützt wird und welcher minimale und maximale Wert für die Eigenschaft gelten. Außerdem können Sie den Wert der Eigenschaft abrufen und einstellen.

In dem folgenden Beispiel wird ein MediaDeviceControlCapabilities-Objekt namens brightnessCapabilities für die Helligkeitseinstellung einer Videokamera abgerufen, mit dem der Helligkeitswert erhöht wird.

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

Schritt 3: Festlegen der Eigenschaften eines Audiogerätecontrollers

Die AudioDeviceController-Eigenschaft gibt ein Windows.Media.Devices.AudioDeviceController-Objekt zurück. Über die Eigenschaften dieses Objekts wie Muted und VolumePercent können Mikrofoneinstellungen direkt angepasst werden.

Das folgende Beispiel zeigt, wie mit einem AudioDeviceController-Objekt die Stummschaltung für das Mikrofon aktiviert bzw. aufgehoben und die Mikrofonlautstärke erhöht wird.

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

Schritt 4: Vollständiges Beispiel

Das folgende Beispiel zeigt, wie Kamera- und Mikrofoneinstellungen bei einer Videoaufzeichnung mit Speicherung in einer Datei geändert werden. Der Einstiegspunkt in diesem Beispiel ist die StartMediaCaptureSession-Funktion. Diese Funktion ruft dann die SetDevices-Funktion auf, über die vor der Aufzeichnungssitzung die Helligkeit der Videokamera und die Lautstärke des Mikrofons angepasst werden. Ein Beispiel zum Erstellen einer Aufzeichnungssitzung finden Sie unter Schnellstart: Aufzeichnen von Video mithilfe der MediaCapture-API.

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

Anmerkungen

Sie können auch ein Dialogfeld zum Anpassen der Kameraeinstellungen öffnen, indem Sie Windows.Media.Capture.CameraOptionsUI.Show aufrufen und ein MediaCapture-Objekt als Parameter übergeben.