10

最近、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-programWeb ブラウザに入力してアクセスしています。

編集: エラーが発生した後、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}
4

4 に答える 4

6

** 一度に 1 つのブラウザ **

複数のブラウザを開いてテストしているときに、この状況に遭遇しました。一度に 1 つのブラウザしかメディアにアクセスできないようです。

つまり、Chrome でページを開いてビデオ/オーディオが機能している場合、Firefox は機能しません。また、Firefox でページを機能させている場合、Chrome は機能しません。

于 2014-04-28T11:14:04.750 に答える
1

NavigatorUserMediaError {コード: 1, PERMISSION_DENIED: 1}

これは、ブラウザの設定により、カメラへのアクセスが許可されていないことを意味します。ブラウザの設定に移動します -> Web サイトの設定の下に、デバイスへのアクセスをブロックした Web ページのリストが表示されます。

于 2015-10-21T05:01:38.140 に答える