Ответ 1
Если вы используете MediaRecorder (пример выше), он будет сохранять сжатый звук в файл.
Если вы используете AudioRecord, вы можете напрямую получить образцы аудио.
Да, то, что вы хотите сделать, должно быть возможным.
Я пытаюсь понять, как написать приложение, которое может легко декодировать звуковой код Морзе на лету. Я нашел этот документ, в котором объясняется, как записывать аудио с микрофона в Android. Я хотел бы знать, возможно ли получить доступ к исходному входу с микрофона или нужно ли его записать/прочитать в файл.
Спасибо.
Если вы используете MediaRecorder (пример выше), он будет сохранять сжатый звук в файл.
Если вы используете AudioRecord, вы можете напрямую получить образцы аудио.
Да, то, что вы хотите сделать, должно быть возможным.
Использование AudioRecord является излишним. Просто проверьте MediaRecorder.getMaxAmplitude() каждые 1000 миллисекунд за громкие шумы и тишину.
Если вам действительно нужно проанализировать форму волны, тогда да вам потребуется AudioRecord. Получите необработанные данные и вычислите что-то вроде среднего квадрата корня части необработанных байтов, с которыми вы занимаетесь, чтобы получить представление об объеме.
Но почему все это, когда MediaRecorder.getMaxAmplitude() гораздо проще в использовании.
см. мой код из этого ответа: этот вопрос
в медиа-лабораториях MIT, называемых funf, есть сенсорная среда: http://code.google.com/p/funf-open-sensing-framework/
Они уже создали классы для аудио ввода и некоторый анализ (FFT и т.п.), А также сохранение файлов или загрузки реализовано, насколько я видел, и они обрабатывают большинство датчиков, доступных на телефоне.
Вы также можете получить вдохновение от кода, который они написали, что я считаю довольно хорошим.
Похоже, что его сначала нужно сбрасывать в файл.
Если вы заглядываете в источник android.media.AudioRecord, буферы базового буфера аудиоданных не подвергаются публичному API.
По моему опыту, создав аудио-синтезатор для Android, трудно добиться производительности в реальном времени и поддерживать точность воспроизведения аудио. "Переводчик" Морзе-кода, безусловно, выполним, и звучит как забавный маленький проект. Удачи!