我想在Android上使用HTML5访问手机的相机。目前我在Kitkat上有Chrome 31.0.1650.59。
我可以确认我的代码在Android上的Chrome浏览器中工作,但我无法在WebView中使用它。我不想发出意图并使用默认的相机应用程序。我想在WebView中显示相机Feed。
这是我的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");
许多这些配置与问题无关,但绝望是尝试。
答案 0 :(得分:0)
仅在Android 5及更高版本中支持访问本地摄像头的HTML5视频。 我目前正在完全从HTML5和一些javascript访问内置摄像头(Front和Back),因为我们的应用程序只能在Android 5及更高版本上运行。在后端,您可以使用一些代码来覆盖webview,以便它自动接受有关允许摄像头访问的安全提示。因此,除非您是Android 5或更新版本,否则它将无法实现。