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.
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
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);
Vous avez la méthode setVolume
dans la classe MediaPlayer
. Voir ici
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);
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.
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
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);
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)
}
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();
}
}
}
N'oubliez pas de régler le volume des haut-parleurs gauche et droit.
if (System.nanoTime() == alarm){
yourMediaPlayer.setVolume(volume, volume)}
}