PhotoCapabilities - 为连接的摄影设备提供可用的配置选项

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

PhotoCapabilitiesMediaStream Image Capture API 的接口,为连接的摄影设备提供了可用的配置选项。可以通过调用 ImageCapture.getPhotoCapabilities() 来获取 PhotoCapabilities 对象。

属性

PhotoCapabilities.redEyeReduction只读

返回 “never”, “always” 或 “controllable” 其中一个值。“controllable” 值表示设备的红眼减轻功能可由用户控制。

PhotoCapabilities.imageHeight 只读

返回一个 MediaSettingsRange 对象,该对象指示用户代理支持的图像高度范围。

PhotoCapabilities.imageWidth 只读

返回一个 MediaSettingsRange 对象,该对象指示用户代理支持的图像宽度范围。

PhotoCapabilities.fillLightMode只读

返回一组可用的补光灯选项。选项可能包括 autooffflash

实例

以下实例摘自 Chrome 的图像捕获/照片分辨率示例,使用了 getPhotoCapabilities() 返回的结果来修改输入范围的大小。此实例还显示了如何使用从设备的 MediaStream 中获得的 MediaStreamTrack 创建 ImageCapture 对象。

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

var 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.log('啊,出错了!', error.name || error));

规范

规范 状态 备注
MediaStream Image Capture
PotoCapabilities 的定义
工作草案 初始定义。

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持59 未知 未知 未知46 未知
fillLightMode59 未知 未知 未知46 未知
imageHeight59 未知 未知 未知46 未知
imageWidth59 未知 未知 未知46 未知
redEyeReduction59 未知 未知 未知46 未知

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持5959 未知 未知 未知43 未知
fillLightMode5959 未知 未知 未知43 未知
imageHeight5959 未知 未知 未知43 未知
imageWidth5959 未知 未知 未知43 未知
redEyeReduction5959 未知 未知 未知43 未知