Для вложенных словарей и списков я собрал пару идей, чтобы сделать это: https://gist.github.com/NullVoxPopuli/f95baaa48b4e9854dcfe (слишком много кода для отправки здесь) ~ 100 строк
Обратите внимание, что исключение RuntimeException намеренно бросается в приложение, если не были получены достоверные аудио / видео данные, когда stop () называется. Это происходит, если stop () вызывается сразу после start (). Неисправность позволяет приложению предпринять соответствующие действия для очистки выходного файла (например, удалить выходной файл), поскольку выходной файл неправильно сконфигурирован, когда это произойдет.
Другими словами : Dalvik специально делает исключение. Вы должны обработать его для очистки после своего приложения. Вам придется обрабатывать его следующим образом:
private void stopRecording() { try{ recorder.stop(); }catch(RuntimeException stopException){ //handle cleanup here } camera.lock(); }
У меня была аналогичная ошибка -1007, когда я записывал звук с помощью AMR_WB
, но оказалось, что проблема в том, что я забыл установить частоту дискретизации.
mediaRecorder.setAudioSamplingRate(16000);