javascript - macOS Safari 问题(getUserMedia)以 Angular 6 从摄像头获取视频流 - NotReadableError : The I/O read operation failed

标签 javascript angular macos safari getusermedia

当我在 safari 上尝试从 mac 中的摄像头获取视频流时出现问题。
对于获取流,我使用函数 navigator.mediaDevices.getUserMedia({video: true})
chrome 上运行良好,但在 safari 上有时会抛出错误:

NotReadableError: The I/O read operation failed.

console error screen

最奇怪的是它不稳定,它可能会出现错误,一段时间后它会正常工作(无需更改代码)...我检查了很多次但没有找到依赖性为什么它或工作或不。

还有一件奇怪的事,错误仅在 Angular 显示,所以我认为问题可能出在 zone.js 上,但我在尝试取出时没有找到解决方案从 zone 获取流的函数调用(为了从 zone 取出我使用了 runOutsideAngularrun)。

我尝试使用一些 npm 库,例如 ngx-webcamack-angular-webcam 但这也无济于事,当错误显示在我的代码中它也出现在插件代码中(我猜这是因为他们使用相同的函数来获取流)。

因此,我在互联网上的长期研究没有给出适当的结果,我不得不询问建议、解决方案或至少是想法。

我的问题
如何避免出现这个错误,为什么不经常显示,这个错误的原因是什么?

感谢您的帮助。

最佳答案

与angular无关,简单运行:

navigator
  .mediaDevices
  .getUserMedia({audio: true, video: false})
  .then(
    function(e) {console.log("success",e);},
    function(e){console.log("reject",e);}
  )

在 javascript 控制台中,您将看到 I/O 错误,仅在 Safari 上。这看起来像是 WebKit 错误。

(我会在找到更多详细信息后尽快完成回答)。

关于javascript - macOS Safari 问题(getUserMedia)以 Angular 6 从摄像头获取视频流 - NotReadableError : The I/O read operation failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52297611/

相关文章:

macos - 在cocoa中获取键盘输入

javascript - 带有 ui-router SEO 的 angular.js 是否友好?

javascript - Jquery : how to add attributs dynamically with the function . 属性()

javascript - 多个图表延迟问题,SVG 还是 HTML5 Canvas?

angular - 将 PrimeNG 数据表导出为 excel、pdf 和 xml

objective-c - Core Data 中对多关系的属性声明

javascript - 从数据对象数组创建折线图

node.js - 如何将数据从 Angular 传递到 Node js服务器?

Angular:如何通过控制台获取组件依赖关系?

objective-c - NSCF 阵列越界?