1

我想在 Ionic 应用程序中获取后置摄像头的视频流。为此,我使用了适用于前置摄像头的 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);

我认为这是一个兼容性问题。任何人都可以帮助我吗?

谢谢你。

4

1 回答 1

3

您正在使用过时的非标准约束语法。adapter.js polyfills规范,所以要从中受益,你必须遵循规范。例如,而不是:

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

利用

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

我已经有了这个工作示例的答案。它应该适用于 Chrome。不确定这是否适用于离子。让我知道它是否不起作用。

于 2017-04-20T14:31:22.383 回答