Saya mendapatkan kesalahan berikut ketika mencoba getCameras() di chrome/Android
Saya menggunakan localhost tanpa 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
Saya menambahkan sertifikat yang ditandatangani sendiri sehingga menggunakan https://localhost :8443 tetapi itu tidak memperbaiki masalah.
Ini hanya masalah di android 7.
Saya mengalami masalah yang sama pada Android versi 4.1.2. Cam depan tidak masalah, cam belakang memberi saya kesalahan yang sama.
Saya mendapatkan masalah yang sama di semua browser yang telah saya uji.
Apakah Anda menemukan solusi teman-teman?
Saya memiliki kesalahan serupa dalam proyek saya (tidak terkait dengan instascan) di Chrome Android.
Kesalahan terjadi ketika saya mencoba mengganti kamera.
Solusi bagi saya adalah menghentikan semua trek dalam aliran aktif sebelum memperoleh yang baru
if(this.lastStream) {
this.lastStream.getTracks().forEach(track => track.stop())
}
setelah itu kesalahannya hilang
Saya memiliki kesalahan serupa dalam proyek saya (tidak terkait dengan instascan) di Chrome Android.
Kesalahan terjadi ketika saya mencoba mengganti kamera.
Solusi bagi saya adalah menghentikan semua trek dalam aliran aktif sebelum memperoleh yang baruif(this.lastStream) { this.lastStream.getTracks().forEach(track => track.stop()) }
setelah itu kesalahannya hilang
Bagi mereka yang bertanya-tanya di mana berhenti trek, itu tepat sebelum navigator.mediaDevices.getUserMedia
.
Terima kasih @Kukunin.
Komentar yang paling membantu
Saya memiliki kesalahan serupa dalam proyek saya (tidak terkait dengan instascan) di Chrome Android.
Kesalahan terjadi ketika saya mencoba mengganti kamera.
Solusi bagi saya adalah menghentikan semua trek dalam aliran aktif sebelum memperoleh yang baru
setelah itu kesalahannya hilang