WebRTCビデオを表示するために、GeckoFX(VS2015のナゲットから入手した最新のもの)エンジンをWindowsフォームウィンドウ(これは機能しています)に埋め込もうとしています。
GeckoFx を WinForm Test-Application に埋め込むために、次のコードを使用しています。
private void MainForm_Load(object sender, EventArgs e)
{
Xpcom.Initialize("Firefox");
GeckoPreferences.User["browser.xul.error_pages.enabled"] = true;
GeckoPreferences.User["media.navigator.enabled"] = true;
GeckoPreferences.User["media.navigator.permission.disabled"] = true; // enable Access to video & audio
GeckoWebBrowser browser = new GeckoWebBrowser();
browser.Dock = DockStyle.Fill;
this.Controls.Add(browser);
// browser.Navigate(@"http://www.palava.tv");
browser.Navigate(@"file:///D:/SimpleWebRTC-master/index.html");
}
ご覧のとおり、いくつかの設定を行っただけです (少なくとも重要なのは、navigator.permission リクエストを無効にして、オーディオと Web カメラへのアクセスを自動的に許可することです。
「Web」側では、ご覧のとおり、現時点では SimpleWebRTC フレームワークを使用しています。ここでは、SimpleWebRTC でサンプルを試す前に、独自のコードをいくつか書きましたが、これも機能するはずでした。このための私自身のコードは次のとおりです。
$('#testbutton2').click(function() {
alert('hurra');
var webrtc = new SimpleWebRTC({
// the id/element dom element that will hold "our" video
localVideoEl: 'localVideo',
// the id/element dom element that will hold remote videos
remoteVideosEl: '',
// immediately ask for camera access
autoRequestMedia: true,
url: 'http://192.168.91.101:8888/'
});
// we have to wait until it's ready
webrtc.on('readyToCall', function () {
// you can name it anything
webrtc.joinRoom('Eingang');
});
});
(ご覧のとおり、jquery も使用しています)。
現在、次のことが起こっています。SimpleWebRTC または自分のファイルからサンプルにアクセスすると、ビデオが表示されません。JavaScript 関数は機能しています (アラートは表示されますが、ビデオにアクセスしている間は何も起こりません)。ウェブカメラがアクセスされていることがわかります (小さな LED が点灯しています) が、ビデオは定義された DOM 要素に表示されません。しかし、これはアプリケーションに埋め込まれた GeckoFx を使用した場合にのみ発生します。通常の FireFox ブラウザー (実際のバージョン) から同じテスト ファイルを呼び出すと、動作しており、ビデオを見ることができます。
次のこと: 両方 (FireFox と埋め込み GeckFX) から www.palava.tv を呼び出すと、両方でビデオを取得できます (!) - 埋め込み GeckoFx には、ウェブカメラにアクセスして操作する機能があるようです。
GeckoFx から呼び出された場合にビデオが表示されないのに、「通常の」Firefox を使用している場合に、アイデア、ヘルプ、または経験があれば教えてください。そして、なぜpalava.tvはブースで動いているのですか?
コメントありがとうございます!