CaptureController: decreaseZoomLevel()-Methode

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die decreaseZoomLevel()-Methode der CaptureController-Schnittstelle verringert die Zoomstufe der erfassten Bildschirmoberfläche um eine Stufe.

Die decreaseZoomLevel()-Methode muss über transiente Aktivierung aufgerufen werden. Darüber hinaus wird der Benutzer um Erlaubnis gebeten, Tabs zu teilen, wenn der Bildschirm erstmals erfasst wird. Wenn der Benutzer die Erlaubnis verweigert, kann die Zoomstufe auch mit transienten Aktivierung nicht geändert werden.

Syntax

js
decreaseZoomLevel()

Parameter

Keine.

Rückgabewert

Ein Promise, das mit undefined erfüllt wird.

Ausnahmen

InvalidStateError DOMException

Wird ausgelöst, wenn:

  • Die erfasste Bildschirmoberfläche bereits auf der minimal unterstützten Zoomstufe ist.
  • Ein Versuch unternommen wird, decreaseZoomLevel() ohne transiente Aktivierung aufzurufen.
NotAllowedError DOMException

Wird ausgelöst, wenn:

  • Die captured-surface-control Berechtigungsrichtlinie der Seite nicht zulässt, dass die Seite die Captured Surface Control API verwendet.
  • Die Erlaubnis zur Erfassung der Bildschirmoberfläche ausdrücklich vom Benutzer verweigert wird.

Beispiele

Grundlegende decreaseZoomLevel()-Verwendung

Der folgende Codeausschnitt fügt einem Button einen Event-Listener hinzu, sodass beim Klicken die Funktion decreaseZoom() aufgerufen wird. Diese ruft wiederum die decreaseZoomLevel()-Methode auf, wodurch die erfasste Oberfläche herausgezoomt wird.

js
// Create controller and start capture
const controller = new CaptureController();
videoElem.srcObject = await navigator.mediaDevices.getDisplayMedia({
  controller,
});

// ...

decBtn.addEventListener("click", decreaseZoom);

async function decreaseZoom() {
  try {
    await controller.decreaseZoomLevel();
  } catch (e) {
    console.log(e);
  }
}

Es ist generell eine bewährte Praxis, decreaseZoomLevel() innerhalb eines try...catch-Blocks aufzurufen, da die Zoomstufe asynchron von einer anderen als der Anwendung geändert werden könnte, was zu einem Fehler führen könnte. Beispielsweise könnte der Benutzer direkt mit der erfassten Oberfläche interagieren, um herein- oder herauszuzoomen.

Sehen Sie sich Using the Captured Surface Control API für ein vollständiges funktionierendes Beispiel an.

Spezifikationen

Specification
Captured Surface Control
# dom-capturecontroller-decreasezoomlevel

Browser-Kompatibilität

Siehe auch