android изменение громкости “профиль звука”

107
14 августа 2019, 02:20

Когда я пользуюсь некоторыми приложениями, где играет музыка или видео, то когда хочу изменить громкость хард кнопками - вместо громкости видео и звука меняется громкость будильника или громкость звонка. И тогда нужно нажимать на кнопку настроек и менять именно громкость устройства. Это жутко бесит.

В моем приложение точно так же. Я могу как то программно повлиять на какой профиль звука будут влиять хард кнопки?

на всякий случай скрин, что бы было ясно о чем я:

Answer 1

Метод setVolumeControlStream() используется для прямого доступа к клавишам регулировки громкости для звукового потока, который вы укажете. Выяснив, какой аудио поток будет использовать приложение, вы должны установить его в качестве выходного звукового потока. Обычно его вызывают в методе onCreate().

setVolumeControlStream(AudioManager.STREAM_MUSIC); С этого момента нажатия клавиш регулировки громкости на устройстве влияют на указанный звуковой поток, когда ваша активность или фрагмент являются видимым.

Источник: http://developer.alexanderklimov.ru/android/theory/audiomanager.php

Answer 2

Попробуйте так

@Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        AudioManager audioManager = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
        int action = event.getAction();
        int keyCode = event.getKeyCode();
        switch (keyCode) {
            case KeyEvent.KEYCODE_VOLUME_UP:
                if (action == KeyEvent.ACTION_UP) {
                    audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, 0);
                }
                return true;
            case KeyEvent.KEYCODE_VOLUME_DOWN:
                if (action == KeyEvent.ACTION_DOWN) {
                    audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, 0);
                }
                return true;
            default:
                return super.dispatchKeyEvent(event);
        }
    }
READ ALSO
Java stream api

Java stream api

есть такой метод

132
Как избежать того, чтобы формат даты изменялся и дописывалось смещение +03:00?

Как избежать того, чтобы формат даты изменялся и дописывалось смещение +03:00?

Есть рест - сервис, принимающий xml и обрабатывающий его библиотекой jaxbДля одного из полей написан адаптер для даты:

99
При попытке получить данные из БД падает NPE

При попытке получить данные из БД падает NPE

Создал метод dbstore, который должен создавать базу, если она пуста, извелкать всех пользователей и тд

148
Мгновенная запись DataInputStream в socket

Мгновенная запись DataInputStream в socket

Всех приветствуюЯ пытаюсь сделать что-то вроде real-time video streaming'a

127