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 |
瀏覽器相容性
載入中…