Android: Как программно настроить громкость MediaPlayer? - PullRequest
41 голосов
/ 23 ноября 2011

Как программно установить громкость медиаплеера.Я использую его для уведомления о тревоге.Любая помощь высоко ценится и заранее спасибо.

Ответы [ 10 ]

43 голосов
/ 23 ноября 2011

Используя AudioManager , вы можете управлять громкостью медиаплеера.

AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 20, 0);

также от MediaPlayer (но я этого не пробовал)

public void  setVolume  (float leftVolume, float rightVolume)

С: Уровень API 1

Устанавливает громкость на этом плеере. Этот API рекомендуется для балансировки выходных аудиопотоков внутри приложения. Если вы не пишете приложение для управления пользовательскими настройками, этот API следует использовать вместо setStreamVolume (int, int, int), который устанавливает громкость ВСЕХ потоков определенного типа. Обратите внимание, что переданные значения объема являются необработанными скалярами. Элементы управления пользовательского интерфейса должны быть масштабированы логарифмически.

Параметры

скакалка левого тома слева

правильный объем правой скалярной громкости

24 голосов
/ 18 сентября 2012

Надеюсь, что эта помощь

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

Для Объем UP

 audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                        AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);

для Уменьшение громкости

audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                        AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
6 голосов
/ 23 ноября 2011

У вас есть метод setVolume в классе MediaPlayer. Смотри здесь

4 голосов
/ 11 октября 2012

Чтобы скрыть интерфейс управления громкостью:

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

Для увеличения громкости

audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                    AudioManager.ADJUST_RAISE, 0);

для уменьшения громкости

audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                    AudioManager.ADJUST_LOWER, 0);
2 голосов
/ 27 июня 2016

Прочтите страницу прямо здесь.Это очень хорошо объясняет.По сути, если ваше приложение не является сменным будильником, вам нужно сделать следующий вызов в функции «onCreate ()»:

setVolumeControlStream(AudioManager.STREAM_MUSIC);

Таким образом, вы можете создать том вашего приложения с помощью аппаратногокнопок.

0 голосов
/ 14 декабря 2018

Код:

AudioManager mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
try 
 {        
   float count = 100 * 0.2f;
   Log.d("--count_float", count + "");
   Log.d("--count_final", Math.round(count) + "");
   Log.d("--count_volume", new 
   PreferenceMotionSensor(mContext).getStreamVolume());
   mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, Math.round(count), 0);
 } 
catch (Exception e) 
 {
  Log.d("--Error", e.getMessage());
 }

Выход

D/--count_float: 20.0
D/--count_final: 20
D/--count_volume: 100
0 голосов
/ 29 мая 2018

Вы можете сделать следующее, используя Kotlin, этот код проверит, превышает ли объем носителя более 20% от максимального объема устройства, и уменьшит его до 20%.

    val audio = this.getSystemService(Context.AUDIO_SERVICE) as AudioManager
    val level = audio.getStreamVolume(AudioManager.STREAM_MUSIC)

    val maxVolume = audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC)
    val percent = 0.2f
    val twintyVolume = (maxVolume * percent).toInt()

    if ( level > twintyVolume) {
        Toast.makeText(this,"audio level is $level", Toast.LENGTH_LONG).show()
        audio.setStreamVolume(AudioManager.STREAM_MUSIC,twintyVolume,0)
    }
0 голосов
/ 24 августа 2015

Приведенный ниже код устанавливает максимальный уровень громкости (getStreamMaxVolume ()).

AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_MUSIC,am.getStreamMaxVolume(AudioManager.STREAM_MUSIC),0);
0 голосов
/ 15 августа 2013

Попробуйте

protected static void setVolume(int volume) {
        currentVolume = volume;
        {
            if (volume == 1) {
                volume = 2;
            }
            try {
                float vol = ((float) volume / CONSTANT.SYSTEM_MAX_VOLUME);
                mediaPlayer.setVolume(vol, vol);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    }
0 голосов
/ 23 ноября 2011

Не забудьте установить громкость левой и правой колонок.

if (System.nanoTime() == alarm){
    yourMediaPlayer.setVolume(volume, volume)}
}
...