Instascan: android / chrome:ビデオソースを開始できませんでした、NotReadableError

作成日 2018年05月10日  ·  7コメント  ·  ソース: schmich/instascan

chrome / androidでgetCameras()を実行しようとすると、次のエラーが発生します

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

最も参考になるコメント

Chrome Androidのプロジェクト(instascanとは関係ありません)でも同様のエラーが発生しました。
カメラを切り替えようとしたときにエラーが発生しました。
私にとっての解決策は、新しいトラックを取得する前に、アクティブなストリーム内のすべてのトラックを停止することでした。

if(this.lastStream) {
  this.lastStream.getTracks().forEach(track => track.stop()) 
}

その後、エラーはなくなりました

全てのコメント7件

自己署名証明書を追加したので、 https:// localhost :8443を使用していますが、問題は解決しませんでした。

これはAndroid7でのみ問題になります。

Androidバージョン4.1.2でも同じ問題が発生しています。 フロントカムは問題ありません、バックカムは私に同じエラーを与えます。

テストしたすべてのブラウザで同じ問題が発生します。

解決策を見つけましたか?

Chrome Androidのプロジェクト(instascanとは関係ありません)でも同様のエラーが発生しました。
カメラを切り替えようとしたときにエラーが発生しました。
私にとっての解決策は、新しいトラックを取得する前に、アクティブなストリーム内のすべてのトラックを停止することでした。

if(this.lastStream) {
  this.lastStream.getTracks().forEach(track => track.stop()) 
}

その後、エラーはなくなりました

Chrome Androidのプロジェクト(instascanとは関係ありません)でも同様のエラーが発生しました。
カメラを切り替えようとしたときにエラーが発生しました。
私にとっての解決策は、新しいトラックを取得する前に、アクティブなストリーム内のすべてのトラックを停止することでした。

if(this.lastStream) {
  this.lastStream.getTracks().forEach(track => track.stop()) 
}

その後、エラーはなくなりました

ストップトラックがどこにあるのか疑問に思っている人のために、それはnavigator.mediaDevices.getUserMedia直前です。

@Kukuninに感謝します。

このページは役に立ちましたか?
0 / 5 - 0 評価