#javascript #cordova #cordova-plugins #cordova-media-plugin #mediacapture
Вопрос:
я создал простое тестовое приложение cordova для тестирования плагина media-capture, при нажатии кнопки записи звука, захвата изображения или записи видео ничего не происходит
Ниже приведены плагины, которые я установил в каталоге проекта cordova:
Ниже приведен код для HTML — файла
<button id = "audioCapture">AUDIO</button>
<button id = "imageCapture">IMAGE</button>
<button id = "videoCapture">VIDEO</button>
Ниже приведен код для файла JS, в котором я добавил функции захвата звука, захвата изображения и захвата видео соответственно.
document.getElementById("audioCapture").addEventListener("click", audioCapture);
document.getElementById("imageCapture").addEventListener("click", imageCapture);
document.getElementById("videoCapture").addEventListener("click", videoCapture);
function audioCapture() {
var options = {
limit: 1,
duration: 10
};
navigator.device.capture.captureAudio(onSuccess, onError, options);
function onSuccess(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i = 1) {
path = mediaFiles[i].fullPath;
}
}
function onError(error) {
navigator.notification.alert('Error code: ' error.code, null, 'Capture Error');
}
}
function imageCapture() {
var options = {
limit: 1
};
navigator.device.capture.captureImage(onSuccess, onError, options);
function onSuccess(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i = 1) {
path = mediaFiles[i].fullPath;
}
}
function onError(error) {
navigator.notification.alert('Error code: ' error.code, null, 'Capture Error');
}
}
function videoCapture() {
var options = {
limit: 1,
duration: 10
};
navigator.device.capture.captureVideo(onSuccess, onError, options);
function onSuccess(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i = 1) {
path = mediaFiles[i].fullPath;
}
}
function onError(error) {
navigator.notification.alert('Error code: ' error.code, null, 'Capture Error');
}
}
Ответ №1:
Cordova должна быть полностью загружена для использования API устройства
Для этого cordova предоставляет события deviceready
В теле HTML добавьте onload
функцию
<body onload="onLoad()">
в JS
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
// ready to use device APIs
function onDeviceReady() {
console.log(navigator.device);
// document.getElementById("audioCapture").addEventListener("click", audioCapture);
}
Комментарии:
1. Здравствуйте, спасибо, что ответили мне. Я делал это до сих пор, но это не сработало.