在app中,如果不是特殊场景,音量键默认调整铃声音量。但是很多情况下,我们需要调整的是媒体音量。所以可以在activty中加上这句:
this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
在一些特殊场景下,比如视频通话之类,因为打开了麦克风,所以系统默认会让音量键调整通话音量,类似于你打电话的时候。
此时想要控制音量键按下的操作,需要重写onKeyDown方法:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
AudioManager am = (AudioManager) getSystemService(Service.AUDIO_SERVICE);
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
am.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
am.adjustStreamVolume(AudioManager.STREAM_DTMF, AudioManager.ADJUST_RAISE, 0);
break;
case KeyEvent.KEYCODE_VOLUME_DOWN:
am.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
am.adjustStreamVolume(AudioManage