Intereting Posts
Системные настройки принудительно закрываются при открытии виджета Цвет фона для изменения холста Android Усовершенствования реализации WakefulIntentService Android Virtual Device Creation не удалось проанализировать свойства Сделать вид сверху вниз SimpleCursorAdapter и CursorAdapter Как изменить цвет заголовка в пользовательских вкладках Chrome Android AsyncTask Лучший способ доступа к контексту активности Android устанавливает привязку потоков Android – Как создать намерение, чтобы открыть действие, отображающее экран «Учетные записи и синхронизация» Разница в поведении сборщика мусора на устройстве Android против эмулятора Android – Инсульт выглядит неровным в углах закругленного прямоугольника SSL-сертификат для веб-служб REST (используется Android)? Внешняя веб-камера для камеры для android с использованием usb Использование классификатора конфигурации наименьшей ширины

Создание WAV-файла из необработанных данных PCM с помощью Android SDK

Я пытаюсь использовать класс AudioRecord для записи WAV-файла. Проблема заключается в том, что он предоставляет только исходные данные PCM, и если я пишу его в файл, информация заголовка отсутствует, поэтому он не будет воспроизводиться на любом медиаплеере. Как я могу создать WAV-файл из этих необработанных данных?

Или, альтернативно, есть ли другой способ записи звука в Android в WAV-файл (или, альтернативно, MP3)?

О, и я знаю, что MediaRecorder нельзя использовать, потому что он не поддерживает ни форматы WAV, ни MP3.

Хорошо, я понял это. Это сообщение очень важно для меня: http://computermusicblog.com/blog/2008/08/29/reading-and-writing-wav-files-in-java

В основном, я использовал ByteArrayOutputStream для записи необработанных данных PCM из AudioRecord, который затем позволяет мне получить массив байтов и его размер, когда процесс будет выполнен. Затем я смогу использовать эти данные в сочетании с настройками SampleRate, BitRate и Stereo / Mono, чтобы создать заголовок WAV согласно приведенной выше ссылке. Полученный файл работает отлично!

Проверьте MediaRecorder.setOutputFormat (), вы можете установить различные форматы контейнеров для вашей записи; Есть MediaRecorder.OutputFormat.MPEG_4 и MediaRecorder.OutputFormat.THREE_GPP; Единственным разрешенным форматом вдоль RAW является setAudioEncoder (MediaRecorder.AudioEncoder.AMR_NB);

Извините, но MP3 не помог. Вам действительно нужна mp3 для записи? WAV в противоположность MP3 – это контейнер , а не формат ; WAV может быть любым форматом кодирования.

Вы всегда можете добавить некоторый заголовок WAV RIFF перед своими исходными данными pcm (если вы точно знаете формат). Проверьте, как это должно выглядеть: http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html

Вы можете использовать класс mediarecord