J'obtiens l'erreur suivante en essayant de getCameras() sur chrome/android
J'utilise un hôte local sans https.
Uncaught (in promise) {name: "NotReadableError", message: "Could not start video source", constraint: undefined, toString: ƒ}constraint: undefinedmessage: "Could not start video source"name: "NotReadableError"toString: ƒ ()__proto__: constructor: ƒ Object()hasOwnProperty: ƒ hasOwnProperty()isPrototypeOf: ƒ isPrototypeOf()propertyIsEnumerable: ƒ propertyIsEnumerable()toLocaleString: ƒ toLocaleString()toString: ƒ toString()valueOf: ƒ valueOf()__defineGetter__: ƒ __defineGetter__()__defineSetter__: ƒ __defineSetter__()__lookupGetter__: ƒ __lookupGetter__()__lookupSetter__: ƒ __lookupSetter__()get __proto__: ƒ __proto__()set __proto__: ƒ __proto__()
step @ instascan.js:44
(anonymous) @ instascan.js:54
Promise.then (async)
step @ instascan.js:51
(anonymous) @ instascan.js:59
F @ instascan.js:416
(anonymous) @ instascan.js:38
start @ instascan.js:23709
getCameras @ QRScan.vue?54e3:51
Promise.then (async)
mounted @ QRScan.vue?54e3:68
callHook @ vue.esm.js?65d7:2921
insert @ vue.esm.js?65d7:4158
invokeInsertHook @ vue.esm.js?65d7:5960
patch @ vue.esm.js?65d7:6179
Vue._update @ vue.esm.js?65d7:2670
updateComponent @ vue.esm.js?65d7:2788
get @ vue.esm.js?65d7:3142
run @ vue.esm.js?65d7:3219
flushSchedulerQueue @ vue.esm.js?65d7:2981
(anonymous) @ vue.esm.js?65d7:1837
flushCallbacks @ vue.esm.js?65d7:1758
J'ai ajouté un certificat auto-signé afin qu'il utilise https://localhost :8443 mais cela n'a pas résolu le problème.
Ce n'est un problème que sur Android 7.
J'ai le même problème sur Android version 4.1.2. La caméra avant n'est pas un problème, la caméra arrière me donne la même erreur.
J'ai le même problème sur tous les navigateurs que j'ai testés.
Avez-vous trouvé une solution les gars?
J'ai eu une erreur similaire dans mon projet (non liée à instascan) dans Chrome Android.
L'erreur s'est produite lorsque j'ai essayé de changer de caméra.
La solution pour moi était d'arrêter toutes les pistes d'un flux actif avant d'en acquérir une nouvelle
if(this.lastStream) {
this.lastStream.getTracks().forEach(track => track.stop())
}
après ça l'erreur est partie
J'ai eu une erreur similaire dans mon projet (non liée à instascan) dans Chrome Android.
L'erreur s'est produite lorsque j'ai essayé de changer de caméra.
La solution pour moi était d'arrêter toutes les pistes d'un flux actif avant d'en acquérir une nouvelleif(this.lastStream) { this.lastStream.getTracks().forEach(track => track.stop()) }
après ça l'erreur est partie
Pour ceux qui se demandent où s'arrêtent les pistes, c'est juste avant navigator.mediaDevices.getUserMedia
.
Merci @Kukunin.
Commentaire le plus utile
J'ai eu une erreur similaire dans mon projet (non liée à instascan) dans Chrome Android.
L'erreur s'est produite lorsque j'ai essayé de changer de caméra.
La solution pour moi était d'arrêter toutes les pistes d'un flux actif avant d'en acquérir une nouvelle
après ça l'erreur est partie