SimpleWebRTCを使用してシンプルなビデオチャットを構築しました。UbuntuでWebRTCを開始すると、Chrome 34に、マイクとWebカメラへの許可または許可の許可を求めるプロンプトが表示されます。許可をクリックすると、会話を開始できます。私もウェブカメラを持っていません。
しかし、Windows 7でWebRTCを起動すると、Chrome 33にプロンプトが表示されません。ただし、アドレス行にクロスWebカメラアイコンが表示されます。そして、Chromeマイクとウェブカメラを使用するにはリロードするので、Linuxのようにプロンプトを表示するにはどうすればよいですか?
私のコードは:
webrtc = new SimpleWebRTC({
// the id/element dom element that will hold "our" video
localVideoEl: 'publishers',
// the id/element dom element that will hold remote videos
remoteVideosEl: 'subscribers',
// immediately ask for camera access
autoRequestMedia: true
});
webrtc.on('readyToCall', function () {
webrtc.joinRoom(sessionId);
});
デモ でも再現できます。そのデモアプリで次のエラーメッセージが表示されました。
ローカルメディアへのアクセスに失敗しました。エラー名はPermissionDeniedErrorでした。ストリームを送信せずに続行します。
ドメインがメディアアクセスを要求しないようにブロックしている可能性があります。この例外はChrome設定内から削除できます。
Chrome Settingsを開き、次の場所に移動します:
設定>
プライバシー(詳細設定内)>
クリックコンテンツ設定..>
クリック例外の管理...
ドメインにオーディオ/ビデオのBlock値がないことを確認してください。ブロックされたドメインが存在する場合は、そのエントリを削除できます。
Chrome 59に新しいセキュリティ機能があります:
3回の解任後に一時的に許可リクエストを停止するセキュリティ
許可プロンプトの3番目の却下に続いて、Originが許可を要求するのを一時的に停止します。停止は、一定の時間が経過すると(最初は1週間)解除され、その後、Originが再度許可を要求する場合があります。さらに解雇すると、一時停止が再度適用されます。
機能をテストしているWeb開発者の場合、ロックアイコンのページ情報ダイアログで権限の設定を変更するか、閲覧データを消去して、ブロックを削除することもできます。
私はまったく同じSimpleWebRTCセットアップを持っていて、それがChromeとFirefoxの両方で機能していませんでした。以前に承認/却下が行われなかったことは明らかです(これがブラウザーが要求しない理由である可能性があります) ただし、httpsなしでローカル開発環境にアクセスしていましたで、ほとんどの最新のブラウザーは、デバイスによって記録された画像と音声のHTTPのみの転送をブロックします。「https」を付加するだけでうまくいきます。