Cordova Media Capture.CaptureAudio - & ldquo; Код ошибки: undefined & rdquo;

У меня проблема с использованием плагина 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);
}

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

0
задан 13 August 2018 в 14:59

2 ответа

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

0
ответ дан 15 August 2018 в 17:02

Для проверки ошибок вы можете использовать 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). Однако для хранения записанного аудио требуется также внешнее хранилище, для которого требуется разрешение во время выполнения.

1
ответ дан 15 August 2018 в 17:02
  • 1
    Спасибо! После некоторой дополнительной отладки я понял, что на самом деле это ошибка с android sdk26 - я нашел это в журналах Jira: Android 8 log: & quot; Ошибка: никакой активности не найдено для обработки Intent {act = android.provider.MediaStore.RECORD_SOUND} & quot; ; & Quot; – Christheoreo 13 August 2018 в 15:22

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

Похожие вопросы: