简体   繁体   English

让HTML5访问Android的相机

[英]Letting HTML5 access Android's camera

I want to access phone's camera using HTML5 on Android. 我想在Android上使用HTML5访问手机的相机。 Currently I have Chrome 31.0.1650.59 on Kitkat. 目前我在Kitkat上有Chrome 31.0.1650.59。

I can confirm my code working in Chrome browser on Android but I can't get it working in WebView. 我可以确认我的代码在Android上的Chrome浏览器中运行,但我无法在WebView中使用它。 I do not want to issue an intent and use default camera app. 我不想发出意图并使用默认的相机应用程序。 I want to display camera feed in WebView. 我想在WebView中显示相机Feed。

Here is my HTML code. 这是我的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>

Which is pretty standard. 这是非常标准的。

Here is android code which displays this page: 这是显示此页面的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");

Lots of these configs have nothing to do with the problem but desperate are attempts. 很多这些配置与问题无关,但绝望是尝试。

HTML5 video accessing the local camera is only supported in Android 5 and newer. 仅在Android 5及更高版本中支持访问本地摄像头的HTML5视频。 I am currently accessing the built-in camera (Front and Back) entirely from HTML5 and some javascript, because our app will only be running on Android 5 and newer. 我目前正在完全从HTML5和一些javascript访问内置摄像头(Front和Back),因为我们的应用程序只能在Android 5及更高版本上运行。 In the back end, there is some code you can use to overrride the webview so that it will automatically accept the security prompt about allowing camera access. 在后端,您可以使用一些代码来覆盖webview,以便它自动接受有关允许摄像头访问的安全提示。 So unless you are Android 5 or newer, it won't be possible. 因此,除非您是Android 5或更新版本,否则将无法实现。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 HTML5-访问摄像头 - HTML5 - Access Camera HTML5 / javascript Android应用程序可以访问摄像机/录音机吗? - Can an HTML5/javascript Android app access the camera/voice recorder? HTML5移动网页中的摄像头访问和图像质量处理 - Camera access and image quality handling in HTML5 mobile webpage 我们可以使用phonegap访问HTML5和javascript中的Android设备的联系人列表,相机图片等原生内容吗? - Can we access native things like contact list, camera pictures, etc of an android device in HTML5 and javascript using phonegap? 通过HTML5或JavaScript启动Android手机前置摄像头 - Launch Android phone front camera by HTML5 or JavaScript 如何在android中使用javascript和html5打开相机? - how to open camera using javascript and html5 in android? 网站(HTML5、JavaScript)能否访问移动设备(Android/iPhone)的联系人列表、SDCard 文件 - Can a website (HTML5,JavaScript) access a mobile device's (android/iPhone) contact list, SDCard files HTML5 Filesystems API - 让用户将文件保存到其实际文件系统 - HTML5 Filesystems API - Letting Users Save Files to Their Actual Filesystem Chrome 不允许 HTTP 托管站点访问相机和麦克风 - Chrome is not letting HTTP hosted site to access Camera & Microphone HTML5 getUserMedia相机焦点 - HTML5 getUserMedia camera focus
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM