前回に引き続き今回は”Query media devices”です。サンプルは2つ。
(1) Choose camera, microphone and speaker
このHTMLを実行するとPCの、”Audio input”、”Audio output”、”Video source”を見つけてプルダウンリストに登録し映像の再生を行います。別になっているjava script fileをサンプルのHTMLに取り込んで見ました。
sample01.htmlこのコードでキーになるのは、101行の navigator.mediaDevices.enumerateDevices()関数です。この関数は使用可能なオーディオ入力デバイス(マイク)、 ビデオ入力デバイス(カメラ)、 オーディオ出力デバイス(スピーカー)を検出する関数です。
- 101行: navigator.mediaDevices.enumerateDevices()
- まずはこの関数が実行されます
- デバイスが検出出来れば ”gotDevices”。出来なければ ”handleError” を実行
- 62行: gotDevices(deviceInfos)
- 検出されたデバイスをここでHTMLに登録します。”deviceInfos”がデバイスの情報アレイです。
- 71−92行: ”deviceInfos”の情報を”audioSource”、”audioOutput”、”videoSource”
- 各プルダウンリストに登録。
- 94−98行: リストの一番最初の項目を選択。
- 検出されたデバイスをここでHTMLに登録します。”deviceInfos”がデバイスの情報アレイです。
- 171行: start();
- デバイス検出後、ここが実行されます。
- 163行: プルダウンリストを元に引数を決定して、navigator.mediaDevices.getUserMedia()を実行
- 正常終了すれば、”gotStream”。”gotStream”が正常終了すれば、”gotDevices”を実行。
- エラーがでると、”handleError”を実行
- 後はこれの繰り返し。
(2) Choose media source and audio output
注記に、”This demo must be run from localhost or over HTTPS Chrome 49 or later, Firefox is not supported yet.”と有りました。今回はブラウザがFirefoxなのでスキップします。