我正在创建一个Android音频播放器,并想添加绘制实时图表以显示频率振幅(我不确定确切的名称是什么)的可能性。我知道如何使用FFT进行操作,但FFT只能应用于原始数据。我的播放器获取的是mp3文件。那么如何从mp3文件中提取频率和它们的振幅呢?
我看到唯一的可能的解决方法是编写自己的本地库来解压缩mp3文件(据我所知,Android没有解压缩mp3的工具),然后使用FFT创建光谱图。但这种方法有一个重要的缺陷 - 它需要大量的时间。将mp3转换为wav并在完整原始数据上应用FFT需要很长时间。显然,在播放期间即时处理更好。但我不知道如何做到这一点。
还有其他方法可以实现我的目标吗?
注:我需要类似于这个的东西
我看到唯一的可能的解决方法是编写自己的本地库来解压缩mp3文件(据我所知,Android没有解压缩mp3的工具),然后使用FFT创建光谱图。但这种方法有一个重要的缺陷 - 它需要大量的时间。将mp3转换为wav并在完整原始数据上应用FFT需要很长时间。显然,在播放期间即时处理更好。但我不知道如何做到这一点。
还有其他方法可以实现我的目标吗?
注:我需要类似于这个的东西
![enter image description here](https://istack.dev59.com/rja27.webp)