Как записать аудио файл в Android - PullRequest
19 голосов
/ 18 апреля 2011

Я работаю в Android.Как записать аудиофайл через микрофон и как сохранить записанный файл в эмуляторе?

Ответы [ 4 ]

21 голосов
/ 18 апреля 2011

Легко записывать аудио в Android. Что вам нужно сделать, это:

1) Создайте объект для класса записи мультимедиа: MediaRecorder recorder = new MediaRecorder();

2) В эмуляторе вы не можете сохранить записанные данные в памяти, поэтому вы должны сохранить их на SD-карте. Итак, сначала проверьте наличие SD-карты: затем начните запись со следующим кодом.

String status = Environment.getExternalStorageState();
if(status.equals("mounted")){
   String path = your path;
}

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

3) Чтобы остановить, переопределите метод останова действия

 recorder.stop();
 recorder.release();
4 голосов
/ 18 апреля 2011

Вот хороший учебник с примером кода.

Захват аудио на Android Developer

включает следующие шаги:

  • Создатьновый экземпляр android.media.MediaRecorder.
  • Установите источник звука с помощью MediaRecorder.setAudioSource ().Возможно, вы захотите использовать MediaRecorder.AudioSource.MIC.
  • Установить формат выходного файла с помощью MediaRecorder.setOutputFormat ().
  • Установить имя выходного файла с помощью MediaRecorder.setOutputFile ().
  • Установите кодировщик звука с помощью MediaRecorder.setAudioEncoder ().
  • Вызовите MediaRecorder.prepare () для экземпляра MediaRecorder.
  • Чтобы запустить захват звука, вызовите MediaRecorder.start ().
  • Чтобы остановить захват аудио, вызовите MediaRecorder.stop ().
  • Когда вы закончите с экземпляром MediaRecorder, вызовите MediaRecorder.release () для него.Вызов MediaRecorder.release () всегда рекомендуется немедленно освободить ресурс.
1 голос
/ 18 апреля 2011

В принципе, нет простого способа записать аудиофайл в виде простого файла WAV. AudioRecorder создает данные в необработанном формате Linear PCM. А Android API предоставляет только аудио буферы данных.

Вам нужно будет самостоятельно создать WAV-файл. Для вас это означает, что вам нужно добавить все фрагменты самостоятельно: заголовок RIFF, фрагменты FMT и DATA.

0 голосов
/ 11 сентября 2012

Я пытался записать WAV-файл в Android. Но почему-то это только запись. Файл WAV только в стереофоническом режиме, и вам следует использовать аудиорекордер со следующим параметром

recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
                        RECORDER_SAMPLERATE, AudioFormat.CHANNEL_IN_MONO,RECORDER_AUDIO_ENCODING, bufferSize);

        recorder.startRecording();

и из записывающего устройства вам нужно записать все данные в один файл, а также вам нужно предоставить информацию заголовка

тогда просто сделай

recorder.stopRecording();

но у меня есть только одна проблема в этом, даже если я даю AudioFormat.CHANNEL_IN_MONO .. он все еще записывает в стерео формате. Надеюсь, мой ответ поможет вам.

...