我正在使用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時,代碼出現了問題,只能捕捉部分播放器播放出來的聲音了,比如“網易雲音樂”,其他播放器播放出來的聲音都捕捉不到!
有人遇到過這樣的問題嗎?是什麼原因造成的?如何解決?
https://github.com/felixpalmer/android-visualizer/issues/5#issuecomment-25900391 一些三星和Nexus的手機用不了