Π― ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ getCameras () Π½Π° chrome / android
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Ρ ΠΎΡΡ Π±Π΅Π· 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
Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠ°ΠΌΠΎΠ·Π°Π²Π΅ΡΡΡΡΠΈΠΉ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ https: // localhost : 8443, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΡΡΡΡΠ°Π½ΠΈΠ»ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎΠ»ΡΠΊΠΎ Π½Π° android 7.
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π° Android Π²Π΅ΡΡΠΈΠΈ 4.1.2. ΠΠ΅ΡΠ΅Π΄Π½ΠΈΠΉ ΠΊΡΠ»Π°ΡΠΎΠΊ Π½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π·Π°Π΄Π½ΠΈΠΉ ΠΊΡΠ»Π°ΡΠΎΠΊ Π²ΡΠ΄Π°Π΅Ρ ΡΡ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΡ.
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎ Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΌΠ½ΠΎΠΉ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ .
ΠΡ Π½Π°ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅Π±ΡΡΠ°?
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ (Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΌ Ρ instascan) Π² Chrome Android.
ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ ΠΊΠ°ΠΌΠ΅ΡΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ ΡΡΠ΅ΠΊΠΈ Π² Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ.
if(this.lastStream) {
this.lastStream.getTracks().forEach(track => track.stop())
}
ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΡΠΈΠ±ΠΊΠ° ΠΈΡΡΠ΅Π·Π»Π°
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ (Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΌ Ρ instascan) Π² Chrome Android.
ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ ΠΊΠ°ΠΌΠ΅ΡΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ ΡΡΠ΅ΠΊΠΈ Π² Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ.if(this.lastStream) { this.lastStream.getTracks().forEach(track => track.stop()) }
ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΡΠΈΠ±ΠΊΠ° ΠΈΡΡΠ΅Π·Π»Π°
ΠΠ»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ Π·Π°Π΄Π°Π΅ΡΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ, Π³Π΄Π΅ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΡΡΠΎ ΠΏΡΡΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄ navigator.mediaDevices.getUserMedia
.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @Kukunin.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ (Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΌ Ρ instascan) Π² Chrome Android.
ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ ΠΊΠ°ΠΌΠ΅ΡΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ ΡΡΠ΅ΠΊΠΈ Π² Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ.
ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΡΠΈΠ±ΠΊΠ° ΠΈΡΡΠ΅Π·Π»Π°