CaptureController:decreaseZoomLevel() 方法

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

CaptureController 介面的 decreaseZoomLevel() 方法會將捕獲的顯示圖面的縮放級別降低一個刻度。

decreaseZoomLevel() 方法必須透過瞬時啟用呼叫。此外,當首次嘗試螢幕捕獲時,會徵求使用者的共享標籤頁許可權;如果使用者拒絕許可權,即使有瞬時啟用,縮放級別也無法更改。

語法

js
decreaseZoomLevel()

引數

無。

返回值

一個 Promise,它 fulfilled 為 undefined

異常

InvalidStateError DOMException

丟擲時

  • 捕獲的顯示圖面已達到其支援的最低縮放級別。
  • 嘗試在沒有瞬時啟用的情況下呼叫 decreaseZoomLevel()
NotAllowedError DOMException

丟擲時

示例

decreaseZoomLevel() 的基本用法

以下程式碼段向按鈕添加了一個事件監聽器,以便在點選按鈕時呼叫 decreaseZoom() 函式。該函式又會呼叫 decreaseZoomLevel() 方法,從而縮小捕獲的圖面。

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

通常,最好將 decreaseZoomLevel() 呼叫放在 try...catch 塊中,因為縮放級別可能被應用程式以外的實體非同步更改,這可能導致錯誤被丟擲。例如,使用者可能直接與捕獲的圖面進行互動來放大或縮小。

有關完整的可執行示例,請參閱 使用 Captured Surface Control API

規範

規範
Captured Surface Control
# dom-capturecontroller-decreasezoomlevel

瀏覽器相容性

另見