尽管是adapter.js,GetUserMedia - facingMode仍然无法识别

时间:2017-04-20 09:18:39

标签: javascript ionic-framework webrtc getusermedia mediastream

我想在离子应用程序中获取后置摄像头的视频流。 为此,我使用适用于前置摄像头的getUserMedia。

当我将面对模式更改为'环境'时,我收到此错误:

Unknown constraint named facingMode rejected ConstraintNotSatisfiedError

在我的Ionic应用程序中,我已经安装了npm软件包“webrtc-adapter”。

这是我从后置摄像头获取流的代码:

this.constraints = { audio: true, video: {mandatory: { facingMode: 'environment'}}};
        cordova.plugins.diagnostic.requestRuntimePermission( (status) => {
            if (cordova.plugins.diagnostic.permissionStatus.GRANTED){

                navigator.getUserMedia(this.constraints, (stream) => {
                    let video = <HTMLVideoElement>document.getElementById('localVideo');
                    video.srcObject =  stream;
                }, function(err){
                    console.log("Error get stream: ", err.name);
                });
            }
        }, (error) => {
            console.error("Error during runtime permission :", error);
        }, cordova.plugins.diagnostic.permission.CAMERA);

我认为这是兼容性问题。有人可以帮帮我吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

您使用的是过时的非标准约束语法。 adapter.js会填充规范,因此要从中受益follow the spec。 例如。而不是:

{audio: true, video: {mandatory: {facingMode: 'environment'}}};

使用

{audio: true, video: {facingMode: {exact: 'environment'}}};

我已经an answer with a working example of this了。它应该适用于Chrome。不确定这是否适用于离子。如果它不起作用,请告诉我。