最近、Web サイトからクライアントのマイクにアクセスしようとすると、エラーが発生し始めました。サイトがユーザーのマイクにアクセスすることを許可するかどうかを Chrome が尋ねると、ユーザー[object NavigatorUserMediaError]
が [許可] をクリックするか [拒否] をクリックするかが表示されます。これは、マイクがコンピューター (Ubuntu 12.04 を実行している) に実際に接続されているかどうかに関係なく発生しています。
Firefox でさらにテストしたところ、これは Chrome に固有のものではないことがわかりました。問題が発生したのは、ライブ入力デモを実行してコンピューターからログアウトした後でした。マイクにアクセスするための最低限のデモを作成しようとしましたが、同じ問題に遭遇しました。
var getVideo = false, getAudio = true;
navigator.getUserMedia || (navigator.getUserMedia = navigator.mozGetUserMedia ||
navigator.webkitGetUserMedia || navigator.msGetUserMedia);
function init() {
if(navigator.getUserMedia) {
navigator.getUserMedia({video:getVideo, audio:getAudio}, onSuccess, onError);
} else {
alert('getUserMedia failed.');
}
}
function onSuccess() {
console.log("Yay");
}
function onError(err) {
console.log("Noo " + err);
}
ログアウトしてから再度ログインして再度テストするまでは完全に機能していたので、これはかなり不可解です。
Jetty と Eclipse を使用して、Web コードをローカルでホストしています。localhost:8080/my-program
Web ブラウザに入力してアクセスしています。
編集: エラーが発生した後、Chrome のアドレス バーにカメラのアイコンが表示され、Chrome がマイクにアクセスしていて、「デフォルト」と「内蔵オーディオ アナログ ステレオ」の 2 つのマイクがリストされていることが示されます。
編集 2: このエラーは、webrtc を介してマイクにアクセスしようとする他の Web サイトでも発生しています。従来の Flash 実装は引き続き機能します。
Chrome が開いている間、定期的にエラー メッセージを表示しているようです。
[361:362:0725/095320:ERROR:audio_output_device.cc(186)]
Not implemented reached in virtual void
media::AudioOutputDevice::OnStateChanged(media::AudioOutputIPCDelegate::State)
編集3:エラーメッセージをもう少し明確にすることができました
NavigatorUserMediaError {code: 1, PERMISSION_DENIED: 1}