почему KEYCODE_VOLUME_UP и KEYCODE_VOLUME_DOWN работают только в событии громкости звонка, Как получить событие громкости мультимедиа (музыки) с помощью onKeyDown в Android - PullRequest
0 голосов
/ 12 июня 2018

Я хочу обновить панель поиска на основе музыкальной клавиши физического объема, но мой код не работает!пожалуйста, помогите мне ..

@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);
}

Ответы [ 2 ]

0 голосов
/ 22 мая 2019
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}   
0 голосов
/ 12 июня 2018
 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)){
            //Do something
            AudioManager am = (AudioManager) getSystemService(AUDIO_SERVICE);
            int volume_level= am.getStreamVolume(AudioManager.STREAM_MUSIC);
            customSeekBar.setProgress(volume_level-1);
            am.adjustStreamVolume( AudioManager.STREAM_MUSIC,AudioManager.ADJUST_LOWER,0);

        }else if(keyCode == KeyEvent.KEYCODE_VOLUME_UP){
                //Do something
                AudioManager am = (AudioManager) getSystemService(AUDIO_SERVICE);
                int volume_level= am.getStreamVolume(AudioManager.STREAM_MUSIC);
            customSeekBar.setProgress(volume_level+1);
            am.adjustStreamVolume( AudioManager.STREAM_MUSIC,AudioManager.ADJUST_RAISE,0);
        }
        return true;
    }

Пожалуйста, попробуйте и дайте мне знать ..

...