В моем приложении я разрешаю пользователю записывать звук с помощью камеры телефона во время записи. Я обновляю путь с использованием времени в качестве значения X и нормализованной формы getMaxAmplitude()
для значения y ,getMaxAmplitude() альтернатива для визуализатора
float amp = Math.min(mRecorder.getMaxAmplitude(), mMaxAmplitude)
/(float) mMaxAmplitude;
Это работает довольно хорошо.
Моя проблема возникает, когда я иду воспроизводить аудио (после транспортировки по сети). Я хочу воссоздать форму волны, генерируемую во время записи, но класс MediaPlayer не обладает тем же методом getMaxAmplitude()
.
Я пытаюсь использовать класс Visualizer, предоставляемый инфраструктурой, но мне трудно получить полезный результат для значения y. Возвращаемый массив байтов содержит значения от -128 до 127, но когда я смотрю на фактические значения, они не отображаются как форма волны, как я ожидал бы.
Как использовать значения, возвращаемые визуализатором, для получения значения, связанного с громкостью звука?