Я пытаюсь подключиться к камере устройства.
Все отлично работает в браузере, но не в 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"