首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >火狐- mediaDevices.getUserMedia抛出AbortError

火狐- mediaDevices.getUserMedia抛出AbortError
EN

Stack Overflow用户
提问于 2018-09-19 20:04:36
回答 2查看 4.7K关注 0票数 7

我在firefox中得到以下错误(在Chrome / Edge /Safari中没有问题):

代码语言:javascript
复制
MediaStreamError { name: "AbortError", message: "Starting video failed", constraint: "", stack: "" }

当抛出此错误时,浏览器控制台仅显示< unavailable >。

我使用的是来自webrtc.github.io的adapter-latest.js,代码在我的应用程序中的其他页面上工作得很好,但不是在某个特定的页面上。有没有可能找出是什么干扰了getUserMedia?我已经试着注释掉所有其他的库和包。

我的代码是:

代码语言:javascript
复制
       var video = document.getElementById('recorder');
       video.onloadedmetadata = function(e) {
           $("#takePicture").show();

           if($("#customerImage").attr("src") == ""){
               $("#recorder").show();
           }
       };
       navigator.mediaDevices.getUserMedia({ video: true})
           .then(stream => {
               video.srcObject = stream;
           })
           .catch(e => console.log(e));
EN

回答 2

Stack Overflow用户

发布于 2018-09-19 20:29:43

您确定需要适配器吗?在我的经验中,它带来的问题比解决的要多。

你能尝试使用约束吗?

示例(我删除了一些东西,但它在这里的效果很好):

代码语言:javascript
复制
 constraints = {
    width: 1280,
    height: 720,
    frameRate: 10, //mobile
    facingMode: {
        exact: "environment"
    } //mobile
}



navigator.mediaDevices.getUserMedia({
    audio: false,
    video: constraints
}).
then(handleSuccess).catch(handleError);


function handleSuccess(stream) {
    video.src = URL.createObjectURL(stream);
    video.play();
}

function handleError(error) {
    console.log('navigator.getUserMedia error: ', error);
}
票数 0
EN

Stack Overflow用户

发布于 2020-07-16 03:18:21

我之所以面临这个问题,是因为我让Chrome也运行相同的应用程序并使用网络摄像头。所以基本上这个摄像头已经在使用了,我也在尝试通过Firefox访问它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52405471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档