You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 00:40:06