Я разрабатываю приложение для Android, в котором мне нужно создать график спектрограммы (который представляет собой визуальное представление спектра частот звука, которые меняются со временем). У меня был аудиофайл, и я использовал БПФ для получения сигнала в частотной области, теперь мне нужно нарисовать график спектрограммы. Мне нужен API, который поможет мне нарисовать эту диаграмму, похожую на диаграммы в Matlab. Любое предложение?
Нарисуйте график спектрограммы аудиофайла в android
Ответы (2)
Объявите в макете пустой элемент <View>
подходящего размера и подходящего для того, что вы хотите показать. Учитывая его идентификатор myview
.
Реализуйте свой собственный класс, который основан на представлении и переопределяет onDraw(Canvas canvas)
. Назовем этот класс MyView. Добавьте любые методы в этот класс, чтобы он мог передавать ему данные (т.е. результат БПФ).
В методе onCreate вашей Activity вызовите findViewById(R.id.myview).setContentView(new MyView());
Реализуйте MyView.onDraw (), чтобы визуализировать данные на холсте. Вызовите метод invalidate
в своем классе представления, чтобы принудительно перерисовать его при изменении данных.
Что рисовать, решать только вам. Я представляю себе набор прямоугольников или линий для каждой полосы частот. Один цвет для «настоящего», а другой для «воображаемого».
Если вы ищете библиотеку Android, которая поможет вам нарисовать спектрограмму, при условии, что у вас есть точки данных после выполнения БПФ аудиосигнала, вам следует изучить следующие библиотеки.