Я решил похожую проблему. Мне пришлось ограничить максимальную громкость в приложении, так что я сделал это (звук является экземпляром AudioManager):
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || keyCode == KeyEvent.KEYCODE_VOLUME_UP){
if(audio != null){
int curVolume = audio.getStreamVolume(AudioManager.STREAM_MUSIC);
int maxVolume = Preferences.getDefaultMaxVolume(Main.this);
if(curVolume > maxVolume) audio.setStreamVolume(AudioManager.STREAM_MUSIC, maxVolume, 0);
}
}
return super.onKeyDown(keyCode, event);
}
Вы можете просто использовать метод setStreamVolume () для постепенного изменения громкости, если это необходимо ...