Cordova Media Capture.CaptureAudio - "Код ошибки: не определено"

У меня возникла проблема с использованием плагина Cordova Media-Capture. Я использую Cordova 8.0.0, Android 7.0.0. Я использую устройство Cordova, плагины Cordova Media для захвата. Вот строки кода из моего файла 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);
}

Обработчик ошибок захвата вызывается, но код ошибки не определен. Может ли кто-нибудь предоставить способ исправить эту проблему?

2 ответа

Для проверки ошибок вы можете использовать LogCat для Android на emulatur или устройстве для соответствующего приложения. Выходные данные logcat лучше всего просматривать через Android Studio. Кроме того, вы можете использовать удаленную отладку Chrome для получения доступа к консоли WebView. Консоль иногда предлагает хороший совет, поэтому вам не нужен LogCat...

Плагин Cordova Media использует внешнее приложение для записи аудио, приложение открывается через Intent ( https://github.com/apache/cordova-plugin-media-capture/blob/master/src/android/Capture.java#L232). Однако для хранения записанного аудио также требуется внешнее хранилище, для чего требуется разрешение во время выполнения.

Оказывается - есть текущая ошибка сборки с плагином захвата медиа. Вместо этого я использовал медиа-плагин, и он записывает как задумано, однако качество звука низкое.

Другие вопросы по тегам