Я работаю в android. Как записать аудиофайл через микрофон и как сохранить записанный файл в эмуляторе?
Как записать аудиофайл в Android
Ответ 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.. он все еще записывает в стерео формате. Надеюсь, мой ответ поможет вам.