EQ가있는 mediaPlayer를 만들고 있는데, 잘 작동하는 EQ 밴드를 설정할 때. 나는 모든 프리셋을 나열하는 코드를 가지고 있으며, 프리셋을 EQ로 설정하려고 할 때, 나는 bad parameter value
을 얻고있다. Equalizer.usePreset throws 유효하지 않은 인수 예외
이
내가 내 로그에있는 것입니다 :09-29 14:29:24.810: W/System.err(27829): java.lang.IllegalArgumentException: AudioEffect: bad parameter value
09-29 14:29:24.835: W/System.err(27829): at android.media.audiofx.AudioEffect.checkStatus(AudioEffect.java:1259)
09-29 14:29:24.835: W/System.err(27829): at android.media.audiofx.Equalizer.usePreset(Equalizer.java:342)
getNumberOfPresets()이 예를 들어 설정 12 프리셋을 반환은 2
(하지만이 모든 값 0-11에 대한 일) usePreset()
전에 setBandLevel()
을 사용하면 예외가 발생하지는 않지만 이것이 올바른 방법인지 확실하지 않습니다. 편집 : setBandLevel은 예외와 아무 관련이 없습니다. 그것은 단지 무작위로 튀어 나오고, 시도의 80 %가 튀어 나옵니다.
업데이트 : 삼성 S3 기기 (현재)에서만 이러한 현상이 발생하고 있습니다. Asus TF101에서 잘 작동합니다.
도움을 주시면 감사하겠습니다.
mEqualizer = new Equalizer(0, mMediaPlayer.getAudioSessionId());
mEqualizer.setEnabled(true);
mEqualizer.usePreset((short)mEQPresetPos);
이퀄라이저를 어떻게 호출하는지 코드를 보여주십시오. – RvdK
질문을 코드로 업데이트했습니다. – cucko
이 코드가 어떻게 작동하는지 때때로 같은 mEQPresetPos 값에 대해 예외가 throw되는 것을 이해하지 못합니다. – cucko