我只是想在 Windows 窗体窗口中嵌入 GeckoFX(从 VS2015 中的 nuget 获得的最新版本)引擎(这正在工作)以显示一些 WebRTC 视频。
要将 GeckoFx 嵌入到我的 WinForm 测试应用程序中,我使用以下代码:
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”部分方面,我目前正在使用 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 函数正在运行(我收到警报,但在访问视频时没有发生任何事情)。到目前为止,我可以看到网络摄像头被访问(小指示灯亮起),但视频未显示给定义的 DOM 元素。但这只有在我使用嵌入到我的应用程序中的 GeckoFx 时才会发生。如果我从常规的 FireFox 浏览器(实际版本)调用相同的测试文件,它正在工作,我可以看到视频。
下一件事:如果我从两者(FireFox 和嵌入式 GeckFX)调用 www.palava.tv,我可以在两者(!)上获取视频 - 似乎嵌入式 GeckoFx 能够访问和使用网络摄像头。
如果从 GeckoFx 调用视频,但如果我使用“普通”Firefox,为什么不显示视频?为什么 palava.tv 在展位工作?
感谢您的任何评论!