前言:
最近在搞直播项目,直播模式下主播传来的声音是以通话模式播放的,因此在控制音量的时候首先你要明确是控制哪个模式下的声音。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
audioManager.adjustStreamVolume(AudioManager.STREAM_VOICE_CALL, AudioManager.ADJUST_RAISE,AudioManager.FX_FOCUS_NAVIGATION_UP);
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
audioManager.adjustStreamVolume(AudioManager.STREAM_VOICE_CALL, AudioManager.ADJUST_LOWER,AudioManager.FX_FOCUS_NAVIGATION_UP);
return true;
case KeyEvent.KEYCODE_BACK:
showLeaveDialog();
return true;
}
return true;
}
adjustStreamVolume(int streamType, int direction, int flags)三个参数介绍
streamType:(声音模式)
- STREAM_VOICE_CALL(通话模式,打电话听到的声音)
- STREAM_SYSTEM(安卓系统音量)
- STREAM_RING(铃声音量)
- STREAM_MUSIC(播放音乐的媒体音量)
direction:(音量大小)
- ADJUST_RAISE(音量增加)
- ADJUST_LOWER(音量降低)
flags:(标记位)
- FX_FOCUS_NAVIGATION_UP(调出系统音量控制)
友情提示
在开发调节音量相关的功能时一定要用代码去控制,不要抛给安卓系统去处理,大部分机型是没问题的,但是在小米8系统按下音量键不能控制通话模式音量,只能用代码去控制。