android.media.audiofx.Equalizer方法不';我不能实时工作

android.media.audiofx.Equalizer方法不';我不能实时工作,android,android-mediaplayer,Android,Android Mediaplayer,我有一个媒体文件,必须使用MediaPlayer类播放 首先,我初始化一个MediaPlayer变量: mediaPlayer = new MediaPlayer(); mediaPlayer = MediaPlayer.create(this, R.raw.queen); 然后我创建一个均衡器: eq = new Equalizer(0, mediaPlayer.getAudioSessionId()); eq.setEnabled(true); 之后,在演奏过程中,我想移动搜索栏来实时改

我有一个媒体文件,必须使用
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
(((

你应该检查的返回值并使用,看看是否真的有控制权。卢卡斯,我在同一个开关块中有这样的构造:case R.id.playBar:mediaPlayer.seekTo(playSeek.getProgress());break;-它工作了!这使用了mediaPlayer,而不是均衡器…@lukaskknuth我从setEnabled()得到了-5的返回值)函数。这是什么意思?请注意,在我使用setBandLevel()函数之后。函数执行成功,但声音没有改变!!请帮助me@MalekTubaisaht你应该把这当作一个问题来问。我最初的评论现在已经有7年了,我不确定这些是否仍然适用于《现代》安德烈。