其他分享
首页 > 其他分享> > android-访问MediaPlayer中的音频缓冲区

android-访问MediaPlayer中的音频缓冲区

作者:互联网

我正在研究Android项目,该项目必须分析频域中的音频信号.实际上,我已经准备好模块,该模块正在从设备麦克风读取信号并对其进行处理(FFT,可视化等),并且这种信号没有任何问题.

现在,我正在尝试分析作为mp3文件存储在设备上的音频信号.通常,从MediaPlayer对象播放它没有任何问题.不幸的是,我在访问播放器播放的数据缓冲区时遇到了一些问题,您可以将其用于频谱计算.

您对我如何获得音频缓冲区有什么建议? MediaPlayer是否完全可能,还是我应该使用其他方法来解决此问题?

解决方法:

据我所知,没有办法使用MediaPlayer直接访问缓冲区.

但是,如果您使用的API≥16(Android 4.1),则可以使用内置的MediaCodec类将MP3文件解码为原始PCM流.您可以对数据进行分析,然后将其传递到AudioTrack进行输出. This blog post显示了有关如何解码和发送到音轨的示例.

如果必须支持较低的API级别,则可以以相同方式使用第三方库.我过去使用过JLayer,但是它的性能高度依赖于硬件.在某些低端设备上,您将无法实时解码.

标签:fft,android-mediaplayer,spectrum,audio,android
来源: https://codeday.me/bug/20191030/1965063.html