2014-04-01 38 views
3

没有在Nexus 5的默认音频记录,所以调用navigator.device.capture.captureAudio结果: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应用程序的录音机?

回答

2

我想你到两个选项:

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

如果安装录音机工作,我会很满意第一个解决方案。我安装了Easy Voice Recorder和Smart Voice Recorder,但仍然出现上述错误。 – gmh04

+0

您可以尝试https://play.google.com/store/apps/details?id=com.audio.voicerecorder&hl=zh-TW - 基于它的来源(https://github.com/MiCode/SoundRecorder/blob/master /src/net/micode/soundrecorder/SoundRecorder.java#L665-L682),它应该像cordova所期望的那样工作。 –

+0

差不多,录音机被调用,但我找不到保存重新编码的方式,这将我带回应用程序。 – gmh04