javascript - 为什么 navigator.mediaDevice 只能在 localhost:9090 上正常工作?
问题描述
我想使用麦克风录制销售人员的声音,在我们 localhost:9090/#/chatroom 这样的开发环境中navigator.mediaDevices
工作正常。但是在生产环境中,导航器没有 mediaDevices 对象,它是未定义的。有人能告诉我为什么吗?
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36
let stream = null;
const constraints = {
audio: true,
};
try {
stream = await navigator.mediaDevices.getUserMedia(constraints);
/* use the stream */
this.beginRecord(stream);
this.recorder.mediaStream = stream;
} catch (err) {
/* handle the error */
// console.error(err);
}
navigator.mediadevices.getusermedia 不是函数
解决方案
您必须使用 HTTPS。localhost
是此要求的一个例外。
注意SecureContext
接口上的属性https://w3c.github.io/mediacapture-main/#navigator-interface-extensions。
推荐阅读
- java - android studion 在 android studio 中给出 disableWebView() 错误
- python - 尝试使用 python-sounddevice 录制音频,但结果只是静态的
- salesforce - 在 Apex 中设置显示重复数据
- spring-boot - 具有 2 个应用程序和 2 个领域的 keycloak
- reactjs - 您通常将经过身份验证的变量放在反应前端的什么位置?
- c++ - 要求编译器发出无分支/恒定时间代码
- javascript - ajax成功响应获得未定义的值
- excel - UserForm 在创建新数据 VBA 之前检查现有列表
- javascript - 如何确定是什么 Javascript 代码触发了模态对话框?
- javascript - 条件错误“无法读取未定义的属性长度”