ImageCapture:getPhotoSettings() 方法

ImageCapture 接口的 getPhotoSettings() 方法返回一个 Promise,该 Promise 解析为一个包含当前照片配置设置的对象。

语法

js
getPhotoSettings()

参数

无。

返回值

一个 Promise,解析为一个包含以下属性的对象:

fillLightMode

捕获设备的闪光灯设置,可以是 "auto""off""flash" 之一。

imageHeight

所需的图像高度(整数)。如果浏览器只支持离散高度,它将选择最接近此设置的宽度值。

imageWidth

所需的图像宽度(整数)。如果浏览器只支持离散宽度,它将选择最接近此设置的宽度值。

redEyeReduction

一个布尔值,指示如果可用,是否应使用红眼消除。

异常

InvalidStateError DOMException

如果构造函数中传入的 MediaStreamTrackreadyState 属性不是 live,则抛出此异常。

OperationError DOMException

如果由于任何原因操作无法完成,则抛出此异常。

示例

下面的示例摘自 Chrome 的 Image Capture / Photo Resolution 示例,它使用 getPhotoSettings() 的结果来修改输入范围的大小。此示例还展示了如何使用从设备的 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-getphotosettings

浏览器兼容性