我正在使用android.media.audiofx.Visualizer捕捉Android设备从扬声器播放的声音的FFT数据,下面是我的代码:
mVisualizer = new Visualizer(0);
mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
mCaptureRate = Visualizer.getMaxCaptureRate();
mVisualizer.setDataCaptureListener(new Visualizer.OnDataCaptureListener() {
public void onWaveFormDataCapture(Visualizer visualizer, byte[] bytes, int samplingRate) {}
public void onFftDataCapture(Visualizer visualizer, byte[] bytes, int samplingRate) {
// 捕获FFT数据
}
}, mCaptureRate, false, true);
大部分情况下,这段代码是好用的。我能够读取到大部分视频和音频播放器播放出来的声音的FFT数据。
但是,使用Nexus 5 Android 6.0.1时,代码出现了问题,只能捕捉部分播放器播放出来的声音了,比如“网易云音乐”,其他播放器播放出来的声音都捕捉不到!
有人遇到过这样的问题吗?是什么原因造成的?如何解决?