Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome extension 如何使用webrtc insde google chrome扩展?_Google Chrome Extension_Webrtc - Fatal编程技术网

Google chrome extension 如何使用webrtc insde google chrome扩展?

Google chrome extension 如何使用webrtc insde google chrome扩展?,google-chrome-extension,webrtc,Google Chrome Extension,Webrtc,我开发了一个google chrome扩展 我现在正在尝试将webRTC功能集成到: navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia; console.log("step1"); navigator.getUserMedia({audio: true, video: true}, function(stream){ co

我开发了一个google chrome扩展

我现在正在尝试将webRTC功能集成到:

navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
console.log("step1");
navigator.getUserMedia({audio: true, video: true}, function(stream){
    console.log("step2");
    $('#myVideo').prop('src', URL.createObjectURL(stream));
    window.localStream = stream;
    console.log("step3");

  }, function(error){ 
    console.log(error);
 });
我有一个错误:

step1
NavigatorUserMediaError {constraintName: "", message: "", name: "InvalidStateError"}
有什么想法吗

在我的分机内使用webrtc需要任何特殊许可吗?是否可以在扩展中访问webrtc

问候

这是我称之为“弹出”的屏幕截图(扩展=弹出+背景)

要在Chrome扩展的后台页面中使用WebRTC或语音识别API,您需要在选项卡、(弹出)窗口或iframe(选项卡内)中打开扩展的页面(如果使用iframe,请不要忘记在中列出页面)。在此页面中,调用
navigator.webkitGetUserMedia
以触发权限提示。用户批准权限后,您的分机(尤其是后台页面)可以再次请求访问麦克风/摄像头,请求将自动获得批准


一次性提示后是否需要无声批准,这也是原因。不过,
audioCapture
videoCapture
权限将在将来可用,因此如果扩展名需要,我建议将这些权限放在清单文件中,即使当前版本的Chrome无法识别扩展名的权限。

您当前的权限如何?它需要“视频捕捉”。但是doc是针对应用的,也许它们与扩展不同。视频捕获和音频捕获只针对应用,而不是扩展:我已经测试过了!您好:我这样做了:弹出窗口调用navigator.webkitGetUserMedia和。。这没有帮助。我尝试了两种:在弹出窗口和在后台,但都没有成功。@yarek不是/popup,而是一个弹出窗口。像是使用
窗口创建的。打开
/
chrome.tabs。创建
/
chrome.windows。创建
。你是说插件外的弹出窗口?不在插件内部?我在选项页面中成功地做到了这一点。但是在插件弹出窗口内有这样做的方法吗?@yarek Yes,或者插入一个请求访问网络摄像头/麦克风的框架。您只需执行一次,然后,弹出或背景页面中的任何请求都将自动获得批准。@yarek No,在当前选项卡中。这个想法的关键部分是1)getUserMedia请求必须来自选项卡中的(子)框架(否则权限栏/气泡将不会出现),2)权限请求需要从您的chrome-
扩展名://[extensionid]
URL触发(因为权限存储在每个源代码中)。