我正在使用 Android 2.3.1 上的 Visualizer 类进行一些音乐分析。我发现 FFT 和波形幅度受设备体积的影响。这意味着如果用户将音量调低,我会收到很少或不会收到 FFT 数据。
我已经在摩托罗拉 Xoom、三星 Galaxy Tab 和模拟器上对此进行了测试,它的行为方式是这样的。
我正在使用下面的代码:
mp = new MediaPlayer();
mp.setDataSource("/sdcard/sine1.wav");
mp.prepare();
mp.setLooping(true);
mp.start();
int audioSessionID = mp.getAudioSessionId();
v = new Visualizer(audioSessionID);
v.setEnabled(true);
查看Visualizer 类的文档,似乎如果我们传入一个有效的音频会话 id,那么可视化器应该对这个音频会话进行操作。Visualizer 似乎正在对输出混合进行操作。
有没有其他人遇到过这种情况或找到解决方法?
谢谢