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

浏览器兼容性

另见