У меня проблема с использованием плагина media-capture cordova. Я использую cordova 8.0.0, android 7.0.0. Я использую устройство cordova, плагины для записи медиачинок cordova. Вот строки кода из моего файла config.xml.
<preference name="AndroidPersistentFileLocation" value="Compatibility" />
<plugin name="cordova-plugin-media-capture" spec="^3.0.2" />
<plugin name="cordova-plugin-device" spec="^2.0.2" />
<engine name="android" spec="^7.0.0" />
<engine name="browser" spec="^5.0.4" />
У меня есть кнопка в моем html, которую я использую для запуска события. Я знаю, что прослушиватель событий работает, поскольку я поставил предупреждение в обработчик события. Вот код JS, который я использую.
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(navigator.device.capture);
document.getElementById('button-record').addEventListener("click", captureTheAudio);
}
function captureTheAudio(){
alert("button click"); // gets here
var captureSuccess = function(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
// do something interesting with the file
alert("worked"); //does not get here
}
};
// capture error callback
var captureError = function(error) {
//navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
alert('Error code: ' + error.code, null, 'Capture Error'); //Error code: undefined.
};
// start audio capture
navigator.device.capture.captureAudio(captureSuccess, captureError);
}
Вызывается обработчик ошибок захвата, но код ошибки не определен. Может ли кто-нибудь дать вам возможность исправить эту проблему?
Оказывается - в плагине медиа-захвата есть текущая ошибка сборки. Вместо этого я использовал медиа-плагин и записывал его по назначению, однако качество звука плохое.
Для проверки ошибок вы можете использовать LogCat для Android на emulatur или устройстве для соответствующего приложения. Выход logcat лучше всего просматривать через Android Studio. Кроме того, вы можете использовать удаленную отладку chrome для получения доступа к консоли WebView. Консоль иногда предлагает вам хороший совет, поэтому вам не нужен LogCat ...
Плагин media cordora использует внешнее приложение для записи звука, приложение открывается через Intent (https: // github.com/apache/cordova-plugin-media-capture/blob/master/src/android/Capture.java#L232). Однако для хранения записанного аудио требуется также внешнее хранилище, для которого требуется разрешение во время выполнения.