【问题标题】:IOS can't find variable: ImageCaptureIOS 找不到变量:ImageCapture
【发布时间】:2019-10-24 13:44:10
【问题描述】:

您好,我在 javascript 中使用 ImageCapture 从我的 web 应用上的设备摄像头视频中捕获照片。

该功能在桌面上运行良好,但在我的 iphone(safari) 上出现此错误:

找不到变量:ImageCapture

这是我的代码:

// get camera permission and start the stream
var stream, imageCapture; 
function getMediaStream() {
  if (!window.navigator.mediaDevices) {
    $("#unsupported").show();
    $("#valid-permissions").hide();
    $("#invalid-permissions").hide();
    $("#alternative-button").show();
    return; 
  } 
  window.navigator.mediaDevices.getUserMedia({video: {facingMode:'environment'}})
    .then(function(mediaStream)
  { 
    stream = mediaStream; 
    let mediaStreamTrack = mediaStream.getVideoTracks()[0];
    imageCapture = new ImageCapture(mediaStreamTrack);
    var video = document.querySelector('#webcam');
      video.srcObject = mediaStream;
      video.onloadedmetadata = function(e) {
        video.play();
    };
  })
  .catch(function (error) {
    // this alert gives me the error above
    alert(error.message);
     $("#valid-permissions").hide();
     $("#unsupported").hide();
     $("#invalid-permissions").show();
     $("#alternative-button").show();
 });
}

【问题讨论】:

    标签: javascript ios image-capture mediastream


    【解决方案1】:

    看起来 ImageCapture 不是 Safari 中受支持的 Web API(在此处提供的表格中仅显示 ?s:https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture#Browser_compatibility)。

    但是,Google Chrome 实验室提供了一个 polyfill:https://github.com/GoogleChromeLabs/imagecapture-polyfill

    您也许可以使用 polyfill 在 Safari 中实现您的目标。

    【讨论】:

    • 今天不工作 :( 不是 safari,不是 chrome for iphone
    • @KatyaPavlenko polyfill 不适合你?我上面第一个链接中的表格显示 iOS Safari 仍然没有此功能,因此没有 iOS 浏览器将拥有它(因为它们都使用 UIWebViews 或具有与 iOS Safari 相同或更少功能的类似功能)。
    猜你喜欢
    • 2021-04-06
    • 2017-01-20
    • 1970-01-01
    • 2021-03-03
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多