首页 > 解决方案 > 为什么 KEYCODE_VOLUME_UP 和 KEYCODE_VOLUME_DOWN 仅适用于响铃音量事件,如何在 android 中使用 onKeyDown 获取媒体(音乐)音量事件

问题描述

我想根据物理音量音乐键更新我的搜索栏,但我的代码不起作用!请帮我..

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    if (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN){
        customSeekBar.setProgress(audioManager.getStreamVolume(AudioManager.STREAM_MUSIC));
        return true;
    } 
    return super.onKeyDown(keyCode, event);
}

标签: androidonkeydown

解决方案


KeyEvent.KEYCODE_VOLUME_DOWN -> {
   audioManager?.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI)
   return true
}
KeyEvent.KEYCODE_VOLUME_UP -> {
   audioManager?.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI)
   return true}   

推荐阅读