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 应用程序上工作?
最佳答案
我认为您只有两个选择:
- 捕获错误,并提示用户从应用商店安装录音机应用。但这可能并不容易; https://issues.apache.org/jira/browse/CB-5603说 cordova 使用 CaptureError.CAPTURE_NO_MEDIA_FILES 进行回调,因此可能无法区分此错误与用户从记录器返回而没有实际记录任何内容。
- 修改 cordova 框架以提供可以处理录音的后备 Activity ,类似于已经为 iOS 和 WP7/8 提供的 Activity 。
关于android - Nexus 5 和 navigator.device.capture.captureAudio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22788191/