【问题标题】:Letting HTML5 access Android's camera让 HTML5 访问 Android 的摄像头
【发布时间】:2014-01-03 06:47:26
【问题描述】:

我想在 Android 上使用 HTML5 访问手机的摄像头。目前我在 Kitkat 上有 Chrome 31.0.1650.59。

我可以确认我的代码在 Android 上的 Chrome 浏览器中工作,但我无法让它在 WebView 中工作。我不想发出意图并使用默认相机应用程序。我想在 WebView 中显示摄像头供稿。

这是我的 HTML 代码。

<video id="video" width="640" height="480" autoplay></video>
<script>

    window.addEventListener("DOMContentLoaded", function() {
        var video = document.getElementById("video"),
            videoObj = { "video": true },
            errBack = function(error) {
                console.log("Video capture error: ", error.code); 
            };

        if(navigator.webkitGetUserMedia) {
            navigator.webkitGetUserMedia(videoObj, function(stream){
                video.src = window.webkitURL.createObjectURL(stream);
                video.play();
            }, errBack);
        }
    }, false);

</script>

这很标准。

这是显示此页面的 android 代码:

WebView webView = (WebView) rootView.findViewById(R.id.webView);
WebSettings ws = webView.getSettings();

webView.setWebChromeClient(new WebChromeClient() {
    @Override
    public boolean onJsAlert(WebView view, String url, String message, final JsResult result){
        return true;
    }

    @Override
    public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
        return true;
    }

    @Override
    public boolean onJsPrompt (WebView view, String url, String message, String defaultValue, JsPromptResult result){
        return true;
    }
});
    webView.setWebViewClient(new WebViewClient());
    ws.setJavaScriptEnabled(true);
    ws.setAllowFileAccess(true);
    ws.setDomStorageEnabled(true);

    webView.loadUrl("http://html-page.htm");

很多这些配置与问题无关,但绝望的是尝试。

【问题讨论】:

  • phonegap 最终调用相机应用程序,该应用程序捕获视频或图片并返回到应用程序。它限制了定制。我想在应用程序中放置一个自定义大小的区域,该区域可以显示来自相机的提要。
  • 你有什么解决办法吗?我也面临类似的问题!!
  • 不,当时我的结论是,由于平台限制,不可能。

标签: javascript android html camera


【解决方案1】:

仅在 Android 5 及更高版本中支持访问本地摄像头的 HTML5 视频。 我目前完全从 HTML5 和一些 javascript 访问内置摄像头(正面和背面),因为我们的应用程序只能在 Android 5 和更高版本上运行。在后端,您可以使用一些代码来覆盖 webview,以便它会自动接受有关允许摄像头访问的安全提示。因此,除非您是 Android 5 或更高版本,否则这是不可能的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 2020-01-10
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    相关资源
    最近更新 更多