Cómo silenciar el reproductor Multimedia en android

6 Comentarios

  1. 56

    Este código funcionó para mí,

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

    para Silencio

    mp.setVolume(0,0);

    & Activar o todo volumen

    mp.setVolume(1,1);
    • los dos dígitos significa L y R del canal, por lo que el activar uno debe ser mp.setvolume(1,1);
    • gracias , he actualizado mi respuesta
    • Sé que esto es después de mucho tiempo, pero me estoy haciendo una excepción de puntero nulo cuando intento configurar el volumen. Realmente agradecería su ayuda.
    • usted debe inicializar primero y durante el ajuste de volumen debe verificar que no null
    • esto sólo va a silenciar un archivo de audio. Lo que si tengo varios archivos de audio y quiero globalmente activar/desactiva el sonido de cualquier actividad?
    • Para varios archivos de audio que está utilizando múltiples instancia de los medios de comunicación jugador, por lo que usted tiene para silenciar todas las instancias .

  2. 12
     AudioManager   mAudioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
    
        int current_volume =mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
        //If you want to player is mute ,then set_volume variable is zero.Otherwise you may supply some value.
        int set_volume=0;
        mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,set_volume, 0);
  3. 8

    Usted podría querer fade out/en el sonido, en lugar de establecer de inmediato a full (1.0 f) o cero (0.0 f) volumen.

    Es un poco complicado, porque necesita un async tarea de mantener la aplicación de responder:

    mpMain es mi MediaPlayer instancia para reproducir el bucle de música de fondo.
    Yo también la atención acerca de que en OnPause() y OnResume().

    Método playBackgroundMusic se utiliza para activar la música, fadeOutBackgroundMusic convierte la música, sino por la decoloración de los volúmenes de 0,5 segundos (10*50, consulte el tiempo y el Hilo.el sueño).

    Mi base de volumen es 0.8 f, usted puede querer hacer que un parámetro de la tarea asíncrona o estática variable global.

    public void playBackgroundMusic( Boolean isOn ){
    if(isOn){
    //prevent conflics with async fade-out task
    if(mtask_fadeout_music!=null){
    mtask_fadeout_music.cancel(true);
    mtask_fadeout_music=null;
    }
    if(mpMain==null){
    mpMain = MediaPlayer.create(this, R.raw.zin___piano_2_140bpm_32158);
    mpMain.setLooping(true);
    mpMain.setVolume(0.8f,0.8f);
    mpMain.start();                         
    }
    }
    else{
    if(mtask_fadeout_music==null){
    fadeOutBackgroundMusic();
    }
    }
    }
    public void fadeOutBackgroundMusic(){
    mtask_fadeout_music = (FadeOutMusic)new FadeOutMusic( ).execute( );
    }
    //
    // background processing ... fade out music stream
    //
    public class FadeOutMusic extends AsyncTask<String,Integer,String> {
    @Override
    protected String doInBackground(String... args) {
    float level = 0.8f;
    int i = 1;
    while(i<50){
    i++;
    if(mpMain != null){
    level=level*0.9f;
    mpMain.setVolume(level, level);         
    }
    try {
    Thread.sleep(10);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    return "dummy";
    }
    @Override
    protected void onPostExecute( String dummy ) {
    if(mpMain != null){
    mpMain.setVolume(0,0);         
    mpMain.release();
    mpMain = null;  
    }
    if(mtask_fadeout_music!=null){
    mtask_fadeout_music = null;
    }
    }       
    @Override
    public void onCancelled() {
    if(mpMain != null){
    mpMain.setVolume(0,0);         
    mpMain.release();
    mpMain = null;  
    }
    if(mtask_fadeout_music!=null){
    mtask_fadeout_music = null;
    }
    }
    }
  4. 3

    AudioManger.setStreamMute está en desuso.
    utilizar a continuación el código alternativo.

    AudioManager am = getSystemService(Context.AUDIO_SERVICE);
    //Change the stream to your stream of choice. 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
    am.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_MUTE, 0);
    } else {
    am.setStreamMute(AudioManager.STREAM_MUSIC, true);
    }
  5. 1

    Probar esto…

       AudioManager manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    manager.setStreamMute(AudioManager.STREAM_MUSIC, true);

    Va a silenciar los medios de volumen para silenciar

Dejar respuesta

Please enter your comment!
Please enter your name here