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 для визуализации звука?