在Android游戏开发中,有两种音量,一种是软音量,软音量可以是通过设置MediaPlayer和SoundPool的音量来实现游戏的声音增减,常见的游戏引擎,如cocos2d-x都有相应的声音引擎来封装软音量方便开发。
但是游戏引擎却没提供硬件音量的设置,这需要我们自己来监听手机上的上下两个音量键,来实现对“媒体音量的”调节。
重写Activity中的onKeyDown方法。
private AudioManager audio = (AudioManager) getSystemService(Service.AUDIO_SERVICE);//声音管理类
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP://增大音量
audio.adjustStreamVolume(
AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_RAISE,
AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN://减小音量
audio.adjustStreamVolume(
AudioManager.STREAM_MUSIC,
AudioManager.ADJUST_LOWER,
AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);
return true;
}
return super.onKeyDown(keyCode, event);
}
代码就这么简单,很轻松的就可以实现在程序中通过音量键调节音量,赶快贴到你的应用和游戏里试试吧!