Шаг 5. Запись аудио

Шаг 5. Запись аудио

Сообщение EgorovAD MEPhI » 26 ноя 2012, 20:18

Платформа Android позволяет записывать аудио и кодировать его в AMR-NB, AMR-NW или AAC. Для записи аудио используется класс android.media.MediaRecorder.

Приведем общий алгоритм записи звука в Android.
    1. Создаем новый экземпляр android.media.MediaRecorder.
    2. Задаем источник, откуда хотим писать звук MediaRecorder.setAudioSource(). В данном случае это будет микрофон MediaRecorder.AudioSource.MIC.
    3. Задаем формат выходного файла MediaRecorder.setOutputFormat().
    4. Задаем имя файла MediaRecorder.setOutputFile().
    5. Задаем, во что будем кодировать аудио MediaRecorder.setAudioEncoder().
    6. Вызываем метод MediaRecorder.prepare() у экземпляра MediaRecorder.
    7. Для того чтобы начать запись, вызываем метод MediaRecorder.start().
    8. Для того чтобы остановить запись, вызываем метод MediaRecorder.stop().
    9. Освобождаем память вызовом метода MediaRecorder.release(). Запись аудио использует достаточно много ресурсов, поэтому по окончании работы необходимо сразу же вызвать этот метод.

Приведем пример как можно записать аудио.

Код: выделить все
private MediaRecorder mRecorder = null;

    private void startRecording(String mFileName) {
        mRecorder = new MediaRecorder();
        mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        mRecorder.setOutputFile(mFileName);
        mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

        try {
            mRecorder.prepare();
        } catch (IOException e) {
            Log.e(LOG_TAG, "prepare() failed");
        }

        mRecorder.start();
    }

    private void stopRecording() {
        mRecorder.stop();
        mRecorder.release();
        mRecorder = null;
    }


Для запуска записи нужно запустить метод startRecording(String mFileName) с указанием файла для записи. Когда запись закончена, вызовите метод stopRecording(). Для получения полноценного записывающего приложения вызов этих методов можно поместить в обработчики нажатия кнопок onClick(View v).

Не забудьте указать разрешение на запись аудио в манифесте RECORD_AUDIO. Также скорее всего может понадобиться разрешение на запись данных на SD-карту WRITE_EXTERNAL_STORAGE.
EgorovAD MEPhI
Администратор
 
Сообщений: 155
Зарегистрирован: 04 ноя 2011, 11:49

Вернуться в 4. Использование периферии

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1