【问题标题】:Cordova Media Capture.CaptureAudio - "Error code: undefined"Cordova Media Capture.CaptureAudio -“错误代码:未定义”
【发布时间】:2018-08-13 11:46:21
【问题描述】:

我在使用 cordova 媒体捕获插件时遇到问题。 我正在使用科尔多瓦 8.0.0,安卓 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);
}

调用了捕获错误处理程序,但错误代码未定义。 谁能提供解决此问题的方法?

【问题讨论】:

    标签: javascript android cordova cordova-plugins


    【解决方案1】:

    为了检查错误,您可以在相应应用程序的模拟器或设备上使用 LogCat for Android。最好通过 Android Studio 查看 logcat 输出。此外,您可以使用 chrome 远程调试来访问 WebView 控制台。控制台有时会为您提供很好的提示,因此您不需要 LogCat...

    cordova 媒体插件使用外部应用程序录制音频,该应用程序通过 Intent (https://github.com/apache/cordova-plugin-media-capture/blob/master/src/android/Capture.java#L232) 打开。但是,也需要外部存储来存储录制的音频,这需要运行时权限。

    【讨论】:

    • 谢谢!经过更多调试后,我意识到这实际上是 android sdk26 的错误 - 我在 Jira 日志中发现了这个:Android 8 日志:“错误:没有找到处理 Intent { act=android.provider.MediaStore.RECORD_SOUND }”的活动
    【解决方案2】:

    原来 - 媒体捕获插件当前存在构建错误。我改用媒体插件,它按预期录制,但音频质量很差。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 2016-05-02
      • 1970-01-01
      • 2011-10-08
      • 2020-05-18
      • 2021-07-31
      相关资源
      最近更新 更多