Подтвердить что ты не робот

Как превратить объем в max программно на Android?

Я пишу приложение для Android, которое поднимает громкость и воспроизводит песню в течение 45 секунд, а затем останавливается. Это отлично работает, однако я могу получить только объем, чтобы увеличить его до 50%. Есть ли способ увеличить объем до 100% с помощью setVolume()?

Это мой код:

final MediaPlayer mp = MediaPlayer.create(context, R.raw.sound_file_1);

//plays eye of the tiger for 45 seconds
if (messages.contains("MUSIC ONLY")){

    //turn up the volume
    mp.setVolume(20, 20);
    mp.start();

    //play ring tone for 45 seconds
    new Timer().schedule(new TimerTask() {
        @Override
        public void run() {
            mp.stop();
        }
    }, 45000);
}
4b9b3361

Ответ 1

Вы можете использовать следующий фрагмент, используя AudioManager:

AudioManager am = 
    (AudioManager) getSystemService(Context.AUDIO_SERVICE);

am.setStreamVolume(
    AudioManager.STREAM_MUSIC,
    am.getStreamMaxVolume(AudioManager.STREAM_MUSIC),
    0);

Это устанавливает громкость на максимальный уровень (getStreamMaxVolume()) для STREAM_MUSIC (который, например, воспроизводится в песне). Для других типов звуков используйте другое значение, например STREAM_RING и т.д.