ImageCapture:getPhotoSettings() 方法
getPhotoSettings()
方法是 ImageCapture
接口的一个方法,它返回一个 Promise
,该 Promise 解析为一个包含当前照片配置设置的对象。
语法
js
getPhotoSettings()
参数
无。
返回值
一个 Promise
,它解析为一个包含以下属性的对象
fillLightMode
-
捕获设备的闪光灯设置,可以是
"auto"
、"off"
或"flash"
之一。 imageHeight
-
所需的图像高度,以整数表示。如果浏览器只支持离散高度,它会选择最接近此设置的宽度值。
imageWidth
-
所需的图像宽度,以整数表示。如果浏览器只支持离散宽度,它会选择最接近此设置的宽度值。
redEyeReduction
-
一个布尔值,表示是否应使用红眼消除(如果可用)。
异常
InvalidStateError
DOMException
-
如果构造函数中传递的
MediaStreamTrack
的readyState
属性不是live
,则抛出此异常。 OperationError
DOMException
-
如果操作因任何原因无法完成,则抛出此异常。
示例
以下示例摘自 Chrome 的 Image Capture / 照片分辨率示例,使用 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 |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。