Подтвердить что ты не робот

Как записать аудиофайл в Android

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

4b9b3361

Ответ 1

Легко записывать аудио в 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();

Ответ 2

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

Захват аудио в 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() всегда рекомендуется немедленно освободить ресурс.

Ответ 3

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

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

Ответ 4

Я пытался записать файл 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.. он все еще записывает в стерео формате. Надеюсь, мой ответ поможет вам.