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)

Какие есть варианты заставить аудиорекордер работать с приложениями Cordova/PhoneGap для Nexus 5?


person gmh04    schedule 01.04.2014    source источник


Ответы (1)


Я думаю, что у вас есть два варианта:

  1. Зафиксируйте ошибку и предложите пользователю установить приложение для записи из магазина приложений. Хотя это может быть непросто; https://issues.apache.org/jira/browse/CB-5603 говорит, что Cordova выполняет обратный вызов с CaptureError.CAPTURE_NO_MEDIA_FILES, поэтому может быть невозможно отличить эту ошибку от пользователя, возвращающегося из рекордера, без фактической записи чего-либо.
  2. Измените платформу Cordova, чтобы предоставить резервную активность, которая может обрабатывать запись, аналогичную той, что уже предоставлена ​​для iOS и WP7/8.
person Mikko Liikanen    schedule 14.04.2014
comment
Я был бы доволен первым решением, если бы установка аудиомагнитофона сработала. Я установил Easy Voice Recorder и Smart Voice Recorder, но все еще получаю указанную выше ошибку. - person gmh04; 14.04.2014
comment
Вы можете попробовать play.google.com/store/apps. / - на основе его исходников (github.com/MiCode/SoundRecorder/blob/master/src/net/micode/), он должен работать так, как ожидает Cordova. - person Mikko Liikanen; 14.04.2014
comment
почти вызывается диктофон, но я не могу найти способ сохранить перекодировку, которая возвращает меня в приложение. - person gmh04; 14.04.2014