如何将getUserMedia与geckofx一起使用

时间:2014-11-10 21:46:26

标签: c# webrtc getusermedia geckofx

如何使用geckofx启用webrtc?

我试过

        var perm = Xpcom.CreateInstance<nsIPermissionManager>("@mozilla.org/permissionmanager;1");
        nsIURI pwcom = Xpcom.CreateInstance<nsIIOService>("@mozilla.org/network/io-service;1").NewURI(new nsAUTF8String("https://apprtc.appspot.com"), null, null);
        perm.Add(pwcom, "camera", 1, 0, 0);
        perm.Add(pwcom, "video-capture", 1, 0, 0);
        perm.Add(pwcom, "audio-capture", 1, 0, 0);

授予网站使用getUserMedia的权限,但仍然无法使用任何webrtc演示网站(例如https://apprtc.appspot.com

我正在使用GeckoFX 29.0.10

PS我已经包含了一个只发出

的nsIConsoleListener

2014-11-10 214218 consoleListener.Observe:[JavaScript错误:“TypeError:window.arguments未定义”{file:“chrome://global/content/alerts/alert.js”line:42}] < / p>

2014-11-10 214219 consoleListener.Observe:[JavaScript错误:“NS_ERROR_NOT_IMPLEMENTED:”{file:“chrome://global/content/alerts/alert.js”line:77}]

alert.js是否用于提示请求将哪个设备用于webrtc?

1 个答案:

答案 0 :(得分:8)

这对我有用:

Gecko.Xpcom.Initialize(@"******************");
GeckoPreferences.User["plugin.state.flash"] = true;
GeckoPreferences.User["browser.xul.error_pages.enabled"] = true;
GeckoPreferences.User["media.navigator.enabled"] = true;
/* The following line is the key: */
GeckoPreferences.User["media.navigator.permission.disabled"] = true;

通过禁用导航器权限,它会自动接受请求,而不会弹出对话框。

测试代码:

GeckoWebBrowser myBrowser = new GeckoWebBrowser();
this.Controls.Add(myBrowser);
myBrowser.Dock = DockStyle.Fill;

myBrowser.Navigate("http://davidwalsh.name/demo/camera.php");

问候,

丹尼尔