MediaPlayer
クラスで再生する必要があるメディア ファイルがあります。
そのため、まず MediaPlayer 変数を初期化します。
mediaPlayer = new MediaPlayer();
mediaPlayer = MediaPlayer.create(this, R.raw.queen);
次に、イコライザーを作成しています。
eq = new Equalizer(0, mediaPlayer.getAudioSessionId());
eq.setEnabled(true);
その後、演奏中にシークバーを動かしてバンドレベルをリアルタイムで変化させたいと思います。たとえば、次のようにします。
public void onStopTrackingTouch(SeekBar seekBar) {
switch (seekBar.getId()){
case R.id.eqBar1:
eq.setBandLevel((short) 0, (short)(eq1Seek.getProgress() - minRange));
break;
...など、すべてのバンドについて。アプリケーションは正常に動作し、エラーは発生しませんでしたが、シーク バーを操作しても効果がありません。
では、なぜうまくいかないのでしょうか。演奏中にイコライザーパラメーターの変更を適用するにはどうすればよいですか?
前もって感謝します!
コードのこの部分では:
case R.id.eqBar1:
eq.setBandLevel((short) 0, (short)(eq1Seek.getProgress() - minRange));
bndText.setText(String.valueOf(eq.hasControl()));
bndText.setText(bndText.getText() + " " + String.valueOf(eq.setEnabled(true)));
break;
hasControl()
リターンtrue
とsetEnabled
リターン0
(成功)ですが、イコライザーが適用されていないようです-移動しても違いは聞こえませんseekbars
(((