VU (Audio) Meter при записи звука в Android

Я новичок в разработке для Android и для своего первого приложения я создал приложение, которое позволяет записывать аудио. Аудиозапись работает так же, как и воспроизведение аудио. Одна вещь, которая отсутствует в приложении, - это обратная связь с пользователем во время записи в виде вольтметра. Я думаю, что на платформе iOS есть встроенный измеритель уровня громкости, который можно использовать для приложений. Мне не удалось найти эквивалент на платформе Android.

Я искал на различных форумах, посвященных разработке Android и поиску в Google, но я не нашел ничего полезного.

Кто-нибудь знает какие-либо примеры кодирования цифрового VU Meter для записи звука?

Кто-нибудь знает какие-либо примеры кодирования для отображения обратной связи при записи?

2 ответа

Вам придется написать свой VU-метр, но это не так сложно.

Во-первых, получите текущую максимальную амплитуду самого последнего набора аудиосэмплов. Зациклите буфер, который вы заполняете AudioRecord, и запомните самое высокое значение. Это в значительной степени то, что MediaPlayer.getAmplitude делает внутри.

Теперь, когда у вас есть амплитуда, вы просто рисуете иглу или прямоугольник с постоянно изменяющимся размером (где height = MAX_RECT_HEIGHT * curAmplitude / CONST_MAXIMUM_AMPLITUDE) или что-то еще в методе draw() пользовательского представления. Вам придется изучить пики, распады и т. Д., Но это все, что нужно сделать.

Вы можете посмотреть источник встроенных VU метровых живых обоев здесь: VU meter.

Вы смотрели на ответы на этот вопрос: Доступ к медиа-потоку Android для визуализации звука?

Другие вопросы по тегам