我已经开发了谷歌浏览器扩展程序。
我现在正在尝试将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,别忘了在中列出该页面web_accessible_resources
。在此页面中,调用navigator.webkitGetUserMedia
以触发权限提示。用户批准许可后,您的扩展名(特别是背景页面)可以再次请求访问麦克风/摄像机,并且该请求将自动被批准。
争论是否需要在一次提示后进行静默批准,这是有争议的,这也是无法在扩展中使用audioCapture
和videoCapture
许可的原因。不过,audioCapture
和videoCapture
权限将在将来提供,因此,即使您的扩展程序需要扩展名,即使在当前版本的Chrome无法识别扩展名的权限时,我也建议将这些权限放入清单文件中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句