android - Nexus 5 和 navigator.device.capture.captureAudio

标签 android audio cordova cordova-3

Nexus 5 上没有默认录音机,因此调用 navigator.device.capture.captureAudio 会导致:

04-01 14:48:08.562 W/System.err(24130): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.provider.MediaStore.RECORD_SOUND }
04-01 14:48:08.562 W/System.err(24130):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1632)
04-01 14:48:08.562 W/System.err(24130):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)
04-01 14:48:08.562 W/System.err(24130):     at android.app.Activity.startActivityForResult(Activity.java:3424)
04-01 14:48:08.562 W/System.err(24130):     at android.app.Activity.startActivityForResult(Activity.java:3385)
04-01 14:48:08.562 W/System.err(24130):     at org.apache.cordova.CordovaActivity.startActivityForResult(CordovaActivity.java:901)
04-01 14:48:08.562 D/CordovaActivity(24130): Paused the application!
04-01 14:48:08.562 D/CordovaWebView(24130): Handle the pause
04-01 14:48:08.562 W/System.err(24130):     at org.apache.cordova.mediacapture.Capture.captureAudio(Capture.java:198)
04-01 14:48:08.562 W/System.err(24130):     at org.apache.cordova.mediacapture.Capture.execute(Capture.java:99)
04-01 14:48:08.562 W/System.err(24130):     at org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:65)
04-01 14:48:08.562 W/System.err(24130):     at org.apache.cordova.PluginManager.execHelper(PluginManager.java:242)
04-01 14:48:08.562 W/System.err(24130):     at org.apache.cordova.PluginManager.exec(PluginManager.java:227)
04-01 14:48:08.562 W/System.err(24130):     at org.apache.cordova.ExposedJsApi.exec(ExposedJsApi.java:53)
04-01 14:48:08.562 W/System.err(24130):     at com.android.org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
04-01 14:48:08.562 W/System.err(24130):     at com.android.org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:27)
04-01 14:48:08.562 W/System.err(24130):     at android.os.Handler.dispatchMessage(Handler.java:102)
04-01 14:48:08.562 W/System.err(24130):     at android.os.Looper.loop(Looper.java:136)

有哪些选项可以让录音机在 Nexus 5 的 cordova/phonegap 应用程序上工作?

最佳答案

我认为您只有两个选择:

  1. 捕获错误,并提示用户从应用商店安装录音机应用。但这可能并不容易; https://issues.apache.org/jira/browse/CB-5603说 cordova 使用 CaptureError.CAPTURE_NO_MEDIA_FILES 进行回调,因此可能无法区分此错误与用户从记录器返回而没有实际记录任何内容。
  2. 修改 cordova 框架以提供可以处理录音的后备 Activity ,类似于已经为 iOS 和 WP7/8 提供的 Activity 。

关于android - Nexus 5 和 navigator.device.capture.captureAudio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22788191/

相关文章:

android - 更新后如何将 RecyclerView ViewHolder 更改回原始布局

matlab - 如何在频率中指定一定数量的fft点

java - Android & PhoneGap——在 NPObject 上调用方法时出错

javascript - 如何从 Cordova 应用程序中的字节数组下载任何文件?

java - Worklight : how to set use addGlobalHeader for WL. Client.invokeProcedure 调用

android - How to encode jpeg images to H264 very fast(将图像转换为视频)

android - Android编程中的重构

java - 以图库 Intent 显示图像

python - 用python读取声卡输出

android - 如何使MediaPlayer和MediaRecorder同时运行?