ImageCapture:grabFrame() 方法

ImageCapture 介面的 grabFrame() 方法會擷取 MediaStreamTrack 中的即時影片快照,並返回一個 Promise,該 Promise 在解決時帶有一個包含快照的 ImageBitmap

語法

js
grabFrame()

引數

無。

返回值

一個 Promise,它會解決為一個 ImageBitmap 物件。

異常

InvalidStateError DOMException

如果建構函式中傳入的 MediaStreamTrackreadyState 屬性不是 live,則丟擲此異常。

UnknownError DOMException

如果由於任何原因操作無法完成,則丟擲此異常。

示例

此示例摘自 Simple Image Capture demo。它展示瞭如何使用 grabFrame() 返回的 Promise 將返回的幀複製到 <canvas> 元素中。為簡單起見,它沒有展示如何例項化 ImageCapture 物件。

js
let grabFrameButton = document.querySelector("button#grabFrame");
let canvas = document.querySelector("canvas");

grabFrameButton.onclick = grabFrame;

function grabFrame() {
  imageCapture
    .grabFrame()
    .then((imageBitmap) => {
      console.log("Grabbed frame:", imageBitmap);
      canvas.width = imageBitmap.width;
      canvas.height = imageBitmap.height;
      canvas.getContext("2d").drawImage(imageBitmap, 0, 0);
      canvas.classList.remove("hidden");
    })
    .catch((error) => {
      console.error("grabFrame() error: ", error);
    });
}

規範

規範
MediaStream 影像捕獲
# dom-imagecapture-grabframe

瀏覽器相容性