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

Изменить громкость в Android?

Можно ли изменить громкость мультимедиа? и как? Я использовал это до сих пор:

setVolumeControlStream(AudioManager.STREAM_MUSIC);

Но у вас есть стрелка и вы хотите изменить громкость носителя, а не громкость звонка.

Так может кто-нибудь показать мне, как просто изменить объем носителя в onCreate(), и позже я исправлю ссылку.

4b9b3361

Ответ 1

Правильный метод использования будет setStreamVolume на вашем AudioManager. Это может выглядеть так.

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

audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
                             [int value],
                             [if desired a flag]);

Пример использования флага заключается в получении звукового сигнала при настройке тома, чтобы пользователь мог услышать результат. Флаг для этого будет AudioManager.FLAG_PLAY_SOUND.

Вы можете использовать AudioManager.FLAG_SHOW_UI, если вы не хотите воспроизводить звук, но отображаете тост с текущим значением. Использование должно получить обратную связь. Не имеет значения, слышно или визуально.

Чтобы получить максимальное допустимое значение для данного потока, вы просто вызываете getStreamMaxVolume() на AudioManager и получаете целочисленное число назад, которое представляет... ну максимальное допустимое значение для тома.

Ответ 2

private AudioManager audio;

Внутри onCreate:

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

Переопределить onKeyDown:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch (keyCode) {
    case KeyEvent.KEYCODE_VOLUME_UP:
        audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
        return true;
    case KeyEvent.KEYCODE_VOLUME_DOWN:
        audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
        return true;
    default:
        // return false;
        // Update based on @Rene comment below:
        return super.onKeyDown(keyCode, event);
    }
}

Ответ 3

Вы можете использовать следующий код для обработки тома с помощью SeekBar:

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

SeekBar sbVolumeBooster = (SeekBar) findViewById(R.id.sbVolumeBooster);
sbVolumeBooster.setMax(audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)); 
sbVolumeBooster.setProgress(audioManager.getStreamVolume(AudioManager.STREAM_MUSIC));  

sbVolumeBooster.setOnSeekBarChangeListener(new OnSeekBarChangeListener() 
{
    @Override
    public void onStopTrackingTouch(SeekBar arg0) 
    {
    }

    @Override
    public void onStartTrackingTouch(SeekBar arg0) 
    {
    }

    @Override
    public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) 
    {
        audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
                progress, 0);  // 0 can also be changed to AudioManager.FLAG_PLAY_SOUND
    }
});

Ответ 4

Предоставление 0 - в флагах позволяет избежать визуального и звукового индикатора. Это хорошо, когда вы реализуете свой собственный звуковой бар и индикатор, и вы не хотите, чтобы андроид добавлял что-нибудь.

Ответ 6

final SeekBar volumnRocker=findViewById(R.id.seekBar);
        volumnRocker.setMax(maxVolumn);
        volumnRocker.setProgress(currentVolumn);
        volumnRocker.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean b) {
                volumnProgress=progress;
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,volumnProgress,0);
            }
        });

в настоящее время он изменяет громкость audioManger с помощью панели поиска. Как я могу изменить прогресс панели поиска с помощью кнопки регулировки громкости?