Android 2.3.1 で Visualizer クラスを使用して音楽分析を行っています。FFT と波形の大きさがデバイスのボリュームの影響を受けていることがわかりました。これは、ユーザーが音量を下げている場合、FFT データをほとんどまたはまったく受信しないことを意味します。
Motorola Xoom、Samsung 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 を渡す場合、ビジュアライザーはこのオーディオ セッションで動作するはずです。ビジュアライザーが出力ミックスで動作しているようです。
他の誰かがこれに遭遇したか、それを回避する方法を見つけましたか?
ありがとう