【发布时间】: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