我想在离子应用程序中获取后置摄像头的视频流。 为此,我使用适用于前置摄像头的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);
我认为这是兼容性问题。有人可以帮帮我吗?
谢谢。
答案 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。不确定这是否适用于离子。如果它不起作用,请告诉我。