マイクのみ使用するのにaudioのみの指定では動かないブラウザがある
とあるサンプルがEdgeで動作したがChromeで動作しなかったので調べてみた。
Chromeはaudio
だけでなくvideo
も指定しないと音声入力が取得ができない。
https://www.html5rocks.com/ja/tutorials/getusermedia/intro/ より引用:
注: Chrome にはバグがあり、「audio」のみを渡しても無効です(crbug.com/112367)。Opera でも を動作させることはできませんでした。
自分でも確認しましたが、
Chromeのバージョン: 79.0.3945.130(Official Build) (64 ビット)
で再現しました。audio
指定のみでは動作せず、video
をaudio
と一緒に指定すると動作する。
navigator.mediaDevices.getUserMediaが推奨らしい
navigator.getUserMedia
ではなくnavigator.mediaDevices.getUserMedia
が推奨らしい
アクセス権限について
ブラウザが管理しているようである。
サイト(ドメイン)単位で管理されるっぽい?
意識していないと結構危険かもしれない。
例:CodePenのある1作品で許可してたら、ほかの作品からアタックされる恐れがある。
(マイクやカメラを許可済みにすると、許可したときのページのみではなく、ドメイン上の任意のページからのアクセスを許可したことになってしまうので、知らない間にCodePenの作品を埋め込んだページを含んで情報が吸い上げられることも考えられる。)1
アクセス権を削除するには - Microsoft Edge
アクセス権を設定したドメインの名前が一覧表示されるので、変更したいものを選んで処置してください。
アクセス権を削除するには - Chrome (PC版)
-
CodePenが悪いわけではなく、レンタルサーバ上のブログなどでも同様。CodePenを例にしたのはたまたま自分が使ってたから。 ↩