2

我只是想在 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 在展位工作?

感谢您的任何评论!

4

0 回答 0