Программная запись данных PCM WAV в Android - PullRequest
1 голос
/ 31 марта 2010

Я ищу способ программно сохранить массив шорт в виде данных PCM. Я знаю, что это должно быть возможно, но я не нашел очень простого способа сделать это на Android.

По сути, я беру данные о напряжении и хочу сохранить их в формате PCM. Моя функция выглядит примерно так:

  public void audifySignal(short[] signal) {
    // Create a WAV file from the incoming signal
  }

Любые предложения будут потрясающими или даже ссылками. Похоже, аудио API, встроенные в Android, более приспособлены для прямой записи с микрофона, и не так много для работы с типом обработки сигналов более низкого уровня (по крайней мере, для сохранения необработанных данных в файл). Я также хотел бы избежать необходимости писать заголовки файлов PCM вручную, а что нет ...

Спасибо!

Ответы [ 2 ]

3 голосов
/ 25 августа 2010

Сэм, я не знаю о библиотеках для Android, но я скажу так:

Необработанные данные PCM довольно просты. Обычно это просто последовательные данные. Возможно, вам нужно понять формат WAV, чтобы понять, что такое PCM и как он работает.

WAV довольно широко используется в качестве контейнера для несжатого звука. Понимание того, как WAV-файл содержит данные, позволит понять, как в целом работает необработанный цифровой звук.

Эта страница помогла мне немного:

http://www.sonicspot.com/guide/wavefiles.html

Интересно, что вы можете более или менее использовать ЛЮБЫЕ данные на звуковой карте, и она будет воспроизводиться. Возможно, для нас, людей, это будет звучать безумно, поскольку звуковая карта не заботится о том, звучит ли она искаженно или нет.

Будет ли это звучать приятно для уха или нет, будет зависеть от того, предоставили ли вы правильный размер выборки, количество каналов, частоту и некоторые данные PCM, которые соответствуют первому.

Обратите внимание, что вы не можете "определить" размер выборки, количество каналов или правильную частоту из самих необработанных данных PCM. Вы должны хранить эти важные данные ДЛИННО с данными PCM, чтобы другие части программного обеспечения могли сообщить звуковой карте, как обрабатывать данные PCM.

Вот тут-то и появляется формат контейнера WAV.

Существуют и другие форматы, но WAV довольно обычное явление, и поэтому это хорошее место для начала.

Приветствие Тристень

1 голос
/ 21 ноября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...