Oracle APEX 20.2.0.00.20调用摄像头的实现方法求助
Oracle APEX 20.2调用摄像头报错的解决方案
针对你在Oracle APEX 20.2.0.00.20中调用摄像头时出现的"Your browser does not support the MediaDevices API."错误,结合同一浏览器在新版APEX中可正常运行的情况,提供以下排查和解决方法:
检查工作区访问协议:
MediaDevices API要求页面必须通过HTTPS(localhost除外)访问。确认20.2版本的工作区是否使用HTTP协议,而新版APEX工作区使用HTTPS。如果是这种情况,将20.2工作区切换为HTTPS访问即可解决。调整APEX浏览器兼容性配置:
APEX 20.2可能默认启用了旧版浏览器兼容模式,导致现代MediaDevices API被屏蔽。进入APEX实例设置,找到「浏览器兼容性」相关选项,将兼容级别调整为支持现代浏览器API的模式(比如移除对IE11等老旧浏览器的强制兼容)。修改代码为兼容旧版API的写法:
部分旧环境中navigator.mediaDevices对象可能未被正确暴露,可改用兼容多浏览器的写法替换原代码:function startCamera() { // 兼容不同浏览器的getUserMedia API写法 const getUserMedia = navigator.mediaDevices?.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia; if (!getUserMedia) { console.error("浏览器不支持摄像头访问"); return; } // 调用对应的摄像头获取方法 getUserMedia.call(navigator.mediaDevices || navigator, { video: true }) .then(stream => { const videoElement = document.getElementById("videoElement"); videoElement.srcObject = stream; videoElement.play(); }) .catch(error => { console.error("启动摄像头出错:", error); }); }检查页面Content-Security-Policy(CSP)设置:
APEX 20.2的页面可能设置了严格的CSP头,限制了媒体设备访问。进入页面属性的「安全」板块,检查CSP规则,确保添加了media-src 'self'或允许摄像头相关权限的配置,避免API被拦截。
内容的提问来源于stack exchange,提问作者Ahmed
相关产品推荐
相关产品推荐

