음량을 디바이스에서 정할 수 있는 수치보다 더 올리게 하려고
Equalizer 를 사용하려고 하는데요
갤럭시 S3 에서는 Equalizer 를 통한 Volume Boost 가 잘 동작하는데
옵G에서는 잘 동작을 하다가도 얼마 있으면 다시 리셋이 되버립니다.
그러다가 휴대폰을 껐다 키면 다시 동작..
혹시 이유 아시는 분 계신가요..? 해결방법이나..
간단한 소스 보여드리겠습니다.
equalizer 를 이용해서 강제로 볼륨을 높혀주는 메서드.
public void setVolumeBooster(int volume) {
equalizer = new Equalizer(20000, audioTrack.getAudioSessionId());
equalizer.setEnabled(true);
short bands = equalizer.getNumberOfBands();
if (volume == SoundManager.NONE_VOLUME_BOOSTER)
boostVolume = 0;
else if (volume == SoundManager.MIDDLE_VOLUME_BOOSTER)
boostVolume = 700;
else
boostVolume = equalizer.getBandLevelRange()[1];
for (short inx = 0; inx < bands; inx++) {
equalizer.setBandLevel(inx, (short)boostVolume);
}
audioTrack.attachAuxEffect(equalizer.getId());
audioTrack.setAuxEffectSendLevel(1.0f);
}
이 메서드는 audioTrack 을 열 때 불려지고 audioTrack을 닫을 때 Equalise를 릴리즈시켜주는 방식으로 호출되고 있습니다.