我正在尝试连接设备相机。 在浏览器中一切正常,但在Cordova中没有。 控制台中没有显示错误,根本没有任何反应。 结果只是一个空的视频标签,上面有一个大的播放图标。
出现这种情况的原因以及如何解决这个问题?
HTML / CSS / JS:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: android-webview-video-poster: 'unsafe-inline'; frame-src *; style-src * 'unsafe-inline';">
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript">
document.addEventListener("deviceready", ready, false)
function ready()
{
var video = document.getElementById('video');
// Get access to the camera!
if(navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
// Not adding `{ audio: true }` since we only want video now
navigator.mediaDevices.getUserMedia({ video: true }).then(function(stream) {
video.src = window.URL.createObjectURL(stream);
video.play();
});
}
}
</script>
</head>
<body id="body" class="wide-layout">
<video id="video" width="640" height="480"></video>
</body>
</html>
的Config.xml:
<platform name="android">
<allow-intent href="market:*" />
<preference name="AndroidPersistentFileLocation" value="Compatibility" />
<config-file parent="/*" target="AndroidManifest.xml">
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="true" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
</config-file>
</platform>
插件:
cordova-plugin-android-permissions 1.0.0 "Permissions"
cordova-plugin-compat 1.2.0 "Compat"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-file 4.3.0 "File"
cordova-plugin-media-capture 1.4.3 "Capture"
cordova-plugin-whitelist 1.3.3 "Whitelist"
答案 0 :(得分:0)
调试设备上运行的应用时,您在控制台输出中看到了什么?您可以通过使用Visual Studio 2017和Apache Cordova工具部署应用程序来看到这一点,试一试。所谓的浏览器平台还不足以测试任何东西,你必须在真实的设备上进行调试。