Вам придется написать свой собственный измеритель VU, но это не так сложно.
Сначала получите текущую максимальную амплитуду самого последнего набора аудиосэмплов. Зациклите буфер, который вы заполняете AudioRecord, и запомните самое высокое значение. Это в значительной степени то, что MediaPlayer.getAmplitude делает внутри.
Теперь, когда у вас есть амплитуда, вы просто рисуете иглу или прямоугольник с постоянным изменением размера (где height = MAX_RECT_HEIGHT * curAmplitude / CONST_MAXIMUM_AMPLITUDE) или что-либо еще в методе draw () пользовательского представления. Вам придется изучить пики, распады и т. Д., Но это все, что нужно.
Вы можете просмотреть источник встроенных живых обоев VU-метра здесь: VU-метр .