8

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 を渡す場合、ビジュアライザーはこのオーディオ セッションで動作するはずです。ビジュアライザーが出力ミックスで動作しているようです。

他の誰かがこれに遭遇したか、それを回避する方法を見つけましたか?

ありがとう

4

2 に答える 2

10

私も同じ問題に直面していましたが、同じシージョンIDに対してEqaulizerとVisualizerを有効にすると機能します。理由はわかりません。APIデモのビジュアライザークラスからイコライザーを削除することを確認しました。言った。

 Equalizer mEqualizer = new Equalizer(0, SessionId);
 mEqualizer.setEnabled(true); // need to enable equalizer
 Visualizer mVisualizer = new Visualizer(SessionId);
于 2011-11-26T10:06:37.200 に答える