ImageCapture:getPhotoCapabilities() 方法
ImageCapture 接口的 getPhotoCapabilities() 方法返回一个 Promise,该 Promise 解析为一个对象,其中包含可用配置选项的范围。
语法
js
getPhotoCapabilities()
参数
无。
返回值
一个 Promise,它解析为一个包含以下属性的对象:
redEyeReduction-
返回
"never"、"always"或"controllable"之一。"controllable"值表示设备的红眼消除功能可由用户控制。 imageHeight-
返回一个对象,指示用户代理支持的图像高度范围。
imageWidth-
返回一个对象,指示用户代理支持的图像宽度范围。
fillLightMode-
返回一个包含可用补光选项的数组。选项包括
auto、off或flash。
异常
InvalidStateErrorDOMException-
如果构造函数中传入的
MediaStreamTrack的readyState属性不是live,则抛出此异常。 OperationErrorDOMException-
如果由于任何原因操作无法完成,则抛出此异常。
示例
以下示例摘自 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 |
浏览器兼容性
加载中…