我在玩浏览器和音频。
我在做这个
var session = {
audio: true,
video: false
};
var recordRTC = null;
navigator.getUserMedia(session, initializeRecorder, onError);
但是,使用最新的FF可用我得到了一个JavaScript错误,说
navigator.getUserMedia不是函数
我从这篇博客文章中复制了这段代码:https://blog.groupbuddies.com/posts/39-tutorial-html-audio-capture-streaming-to-nodejs-no-browser-extensions
在最新的Chrome上:
未捕获的类型错误:undefined不是函数
但我知道这个API是支持从两个浏览器
我做错了什么?
6条答案
按热度按时间jyztefdp1#
不支持无前缀。参见http://caniuse.com/#search=getusermedia
您需要获取特定于浏览器的前缀并使用它。如another answer中所示:
这将把
navigator.getUserMedia
设置为它检测到的正确前缀版本。63lcw9qa2#
由于
navigator.getUserMedia()
已弃用,请使用以下命令:oxcyiej73#
检查MDN page,特别是第一个例子的第一部分:
它不是很好的支持-你需要浏览器前缀。
ttcibm8c4#
Navigator.getUserMedia()已弃用,建议使用MediaDevices.getUserMedia()
qc6wkl3g5#
问题是
如果当前文档没有安全加载,navigator.mediaDevices将是未定义的,并且您不能使用getUserMedia()。有关此问题以及与使用getUserMedia()相关的其他安全问题的详细信息,请参阅安全性
如https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia所示
经过搜索,我找到了解决办法
尝试以下步骤:
1.打开Chrome浏览器,在URL中键入chrome://flags/#unsafely-treat-insecure-origin-as-secure。
1.添加您的主机/本地URL的路径(例如localhost/myproject或YOUR_HOSTNAME)
1.选择【启用】。
1.重新启动浏览器。
izkcnapc6#
我使用
navigator.mediaDevices.enumerateDevices()
查找已连接的摄像头,但出现此错误当没有连接任何摄像头时。我使用React来开发前端,所以为了解决这个问题,我创建了一个.env文件,其中包含`HTTPS= true '。因此,在浏览器中,我可以使用https协议来服务项目,当相机没有连接时,我没有任何错误。