web-dev-qa-db-fra.com

Android: Comment définir le volume de MediaPlayer par programme?

Comment régler le volume du lecteur multimédia par programme. Je l'utilise pour la notification d'alarme. Toute aide est très appréciée et merci d’avance.

41
Pattabi Raman

En utilisant AudioManager vous pouvez contrôler le volume du lecteur multimédia. 

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

aussi de MediaPlayer (mais je n'ai pas essayé ça)

public void  setVolume  (float leftVolume, float rightVolume)

Depuis: API niveau 1

Règle le volume sur ce lecteur. Cette API est recommandée pour équilibrer la sortie des flux audio dans une application. Sauf si vous écrivez une application pour contrôler les paramètres utilisateur, cette API doit être utilisée de préférence à setStreamVolume (int, int, int), qui définit le volume de TOUS les flux d'un type particulier. Notez que les valeurs de volume transmises sont des scalaires bruts. Les contrôles de l'interface utilisateur doivent être mis à l'échelle de manière logarithmique.

Paramètres

volume gauche volume scalaire

rightVolume volume droit scalaire 

43
user370305

J'espère que cette aide

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

Pour Volume UP  

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

pour Volume Down

audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                        AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
24
Dwivedi Ji

Vous avez la méthode setVolume dans la classe MediaPlayer. Voir ici

6
abhinav

Pour masquer l'interface utilisateur du contrôle du volume:

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

Pour Volume Up

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

pour baisser le volume

audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                    AudioManager.ADJUST_LOWER, 0);
4
Kanakaraj

Lisez cette page ici. Cela explique très bien… .. Fondamentalement, à moins que votre application ne soit un réveil de remplacement, vous devez effectuer l'appel suivant dans la fonction "onCreate ()":

setVolumeControlStream(AudioManager.STREAM_MUSIC);

De cette manière, vous pouvez créer le volume de votre application à l'aide des boutons matériels.

2
Cosmin

Code:

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

Sortie  

D/--count_float: 20.0
D/--count_final: 20
D/--count_volume: 100
0
Hits sapra

Le code ci-dessous définit le volume au niveau maximal (getStreamMaxVolume ()).

AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setStreamVolume(AudioManager.STREAM_MUSIC,am.getStreamMaxVolume(AudioManager.STREAM_MUSIC),0);
0
Rahul Baradia

Vous pouvez effectuer les opérations ci-dessous à l'aide de Kotlin. Ce code vérifie si le volume du support représente plus de 20% du volume maximum du périphérique et le réduit à 20% seulement.

    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
Hasan A Yousef

Essaye ça

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
Arfan Mirza

N'oubliez pas de régler le volume des haut-parleurs gauche et droit.

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