ImageCapture:getPhotoCapabilities() 方法

ImageCapture 介面的 getPhotoCapabilities() 方法返回一個 Promise,該 Promise 解析為一個物件,其中包含可用配置選項的範圍。

語法

js
getPhotoCapabilities()

引數

無。

返回值

一個 Promise,它解析為一個包含以下屬性的物件:

redEyeReduction

返回 "never""always""controllable" 之一。"controllable" 值表示裝置的紅眼消除功能可由使用者控制。

imageHeight

返回一個物件,指示使用者代理支援的影像高度範圍。

imageWidth

返回一個物件,指示使用者代理支援的影像寬度範圍。

fillLightMode

返回一個包含可用補光選項的陣列。選項包括 autooffflash

異常

InvalidStateError DOMException

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

OperationError DOMException

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

示例

以下示例摘自 Chrome 的 Image Capture / Photo Resolution Sample,它使用 getPhotoCapabilities() 的結果來修改輸入範圍的大小。此示例還展示瞭如何使用從裝置的 MediaStream 中檢索到的 MediaStreamTrack 來建立 ImageCapture 物件。

js
const input = document.querySelector('input[type="range"]');

let imageCapture;

navigator.mediaDevices
  .getUserMedia({ video: true })
  .then((mediaStream) => {
    document.querySelector("video").srcObject = mediaStream;

    const track = mediaStream.getVideoTracks()[0];
    imageCapture = new ImageCapture(track);

    return imageCapture.getPhotoCapabilities();
  })
  .then((photoCapabilities) => {
    const settings = imageCapture.track.getSettings();

    input.min = photoCapabilities.imageWidth.min;
    input.max = photoCapabilities.imageWidth.max;
    input.step = photoCapabilities.imageWidth.step;

    return imageCapture.getPhotoSettings();
  })
  .then((photoSettings) => {
    input.value = photoSettings.imageWidth;
  })
  .catch((error) => console.error("Argh!", error.name || error));

規範

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

瀏覽器相容性