Android MediaRecorder.setAudioSource не удалось - PullRequest
62 голосов
/ 24 сентября 2010

У меня прошивка 1.6 для Android G1, я пытаюсь записать голос из приложения с помощью следующего кода.

MediaRecorder recorder = new MediaRecorder();
 recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
 recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
 recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
 recorder.setOutputFile(PATH_NAME);
 recorder.prepare();
 recorder.start();  

мой файл manifest.xml имеет:

<uses-permission android:name="android.permission.RECORD_AUDIO" />

Я получил:

09-23 14:41:05.531: ERROR/AndroidRuntime(1718): Uncaught handler: thread main exiting due to uncaught exception
09-23 14:41:05.551: ERROR/AndroidRuntime(1718): java.lang.RuntimeException: setAudioSource failed.
09-23 14:41:05.551: ERROR/AndroidRuntime(1718):     at android.media.MediaRecorder.setAudioSource(Native Method)

как правильно записать голос?

Ответы [ 16 ]

1 голос
/ 01 октября 2016

Как Cyanogenmod-User, я должен был

  1. убедиться, что разрешения определены в манифесте (android-studio)
  2. убедиться, что защита конфиденциальности позволила приложению получить доступмикрофон (на устройстве)
  3. убедитесь, что система Android установила разрешения в разделе Settings -> Apps -> Выберите приложение -> Permissions -> Проверьте все разрешения(должны быть запрошены манифестом) (на устройстве)

После этого у меня сработало перекодирование.

1 голос
/ 21 апреля 2014

Этот код работал для меня

 mRecorder = new MediaRecorder();
 mRecorder.reset();
 mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
1 голос
/ 24 сентября 2010

Это выглядит правильно. Убедитесь, что другие приложения еще не используют MIC. Возможно, перезагрузите телефон и попробуйте снова.

0 голосов
/ 26 февраля 2019

Убедитесь, что система Android настроила разрешения для устройства, должны быть те, которые запрашиваются манифестом:

  • в разделе Настройки -> Приложения -> Выберите приложение -> Разрешения-> Проверьте все разрешения на
0 голосов
/ 23 марта 2013

Изменить

<uses-permission android:name="android.permission.RECORD_AUDIO" />

на

<uses-permission android:name="android.permission.RECORD_AUDIO" ></uses-permission>

Работал для меня.

0 голосов
/ 17 января 2011

Мое предложение может показаться глупым, но у меня это сработало:)

Попробуйте дать разрешение в виде вложенного тега.Я полагаю, что где-то есть проблема с синтаксическим анализом XML в библиотеке упаковки Android.

...