LoginSignup
1
4

More than 3 years have passed since last update.

ローカル(file:///プロトコル)時に毎回マイクやカメラの使用許可をたずねられる問題を回避する

Posted at

結論

Chromeの起動時オプションに
--use-fake-ui-for-media-stream
を追加する。

が次の許可を求めていますを無視する。
permissionが常に許可されるので留意すること。

参考情報のほうにFirefox版の対処方法も書いているのでそちらも
(現状FirefoxでSpeechRecognitionはできないけれどカメラや普通の音声入出力には使えるはず)

症状

HTTPサーバーに公開していた音声認識

var recognition = new SpeechRecognition();
// var recognition = new webkitSpeechRecognition();

recognition.start();

をするWebページがあった。
http上ではstart()タイミングで一度だけマイクの使用許可を求められ、
以後何度recognition.start()しても再度使用許可を求められることがなかった。

このHTMLをローカル上にダウンロードし、直接ファイルを開いた場合、
file:///C:/hogehoge
recognition.start()するたびに使用の許可を求めるダイアログが表示されてしまった。

解決方法は結論のとおり、常に許可するオプションで最初の使用許可ダイアログすらスキップする方法を取った。
recognition.start()した時点で問答無用で許可されるので、ローカルだが一応カメラとか発言に注意か。
おそらく自動テスト用のオプションに思えるが、用途に合っていたのでOK

試したけどだめだったもの

ローカルなら事前に
MediaDevices.getUserMedia()
などで許可を取っておかないとダメなのかな?と考えたが、特に関係なし。これも毎回許可を求められらた。

参考

SpeechRecognitionに固執していてよい情報が取得できなかった。
「マイク 許可」などであさっていたが、WebRTCというキーワードは自発的に出てこなかったので以後気をかけるとよさそう。


とりたくなかった方法

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4