Cómo silenciar MediaPlayer en AndroidCómo silenciar MediaPlayer en Android
Respuesta
Este código funcionó para mí,
MediaPlayer mp = MediaPlayer.create(context, R.raw.sound_file_1);
mp.start();
para Silencio
mp.setVolume(0,0);
& Desilenciar o completa volumen
mp.setVolume(1,1);
Es posible que desee atenuar/atenuar el sonido en lugar de ajustarlo inmediatamente a volumen completo (1.0f) o cero (0.0f).
Es un poco complicado, ya que se necesita una tarea asíncrona para mantener su aplicación responde:
mpMain es mi ejemplo MediaPlayer para reproducir la música de fondo de bucle. También me preocupa en OnPause() y OnResume().
Método playBackgroundMusic se utiliza para encender la música, fadeOutBackgroundMusic apaga la música, pero atenuando el volumen durante 0,5 segundos (10 * 50, vea while y Thread.sleep).
Mi volumen base es 0,8 f, es posible que desee convertirlo en un parámetro de la tarea asíncrona o usar una variable global estática.
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;
}
}
}
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);
Prueba esto ...
AudioManager manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
manager.setStreamMute(AudioManager.STREAM_MUSIC, true);
Se silenciará el volumen multimedia completa para silenciar
Prueba este
AudioManager am = getSystemService(Context.AUDIO_SERVICE);
// Request audio focus.
am.requestAudioFocus(listener, AudioManager.STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN);
http://developer.android.com/training/managing-audio/audio-focus.html
AudioManger.setStreamMute
está en desuso. use debajo del código alternativo.
// 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);
}
- 1. Silenciar teléfono Android en Java
- 2. RTP en Android MediaPlayer
- 3. Android MediaPlayer - cómo jugar en STREAM_ALARM?
- 4. Cómo reproducir mp3 + g en mediaplayer android
- 5. Android MediaPlayer atorado en prepare()
- 6. AndroId MediaPlayer prepareAsync método
- 7. Cómo separar/liberar Surfaceview desde android mediaplayer
- 8. Obtener mediaPlayer del videoView en Android
- 9. Android MediaPlayer Detener y jugar
- 10. Transmisión a la MediaPlayer Android
- 11. Silenciar un video en reproducción por VideoView en la aplicación Android
- 12. Servicio Android que controla MediaPlayer
- 13. Reproducir matriz de bytes en MediaPlayer - Android
- 14. Clase de MediaPlayer personalizada en Android
- 15. Streaming con Android MediaPlayer en SDK 8
- 16. Android - Cómo saber cuándo MediaPlayer está almacenando en el buffer
- 17. cómo se debe transmitir contenido autenticado con MediaPlayer en Android
- 18. Android MediaPlayer de con la galleta
- 19. Android: MediaPlayer finalizado sin haber sido lanzado
- 20. Android MediaPlayer/VideoView con subtítulos (SRT)
- 21. Cómo silenciar Windows con WPF?
- 22. Android MediaPlayer se está preparando demasiado tiempo
- 23. Cómo silenciar una llamada entrante
- 24. ¿Cómo silenciar el video reproducido en AVPlayer?
- 25. En gcc, ¿cómo silenciar la advertencia permisiva?
- 26. Android: MediaPlayer, ¿Cómo obtener propiedades de una transmisión de audio?
- 27. ¿Grabar audio en Android con MediaPlayer como fuente?
- 28. setVideoSurfaceTexture failed: -22 en mediaplayer
- 29. Transmitir audio desde una URL en Android usando MediaPlayer?
- 30. Android - Tamaño del búfer de MediaPlayer en ICS 4.0
los dos dígitos significan el canal L y R, por lo que el sonido debe ser mp.setvolume (1,1); –
@DheeB gracias, he actualizado mi respuesta –
Sé que esto es mucho tiempo después, pero obtengo una excepción de puntero nulo cuando intento establecer el volumen. Realmente agradecería su ayuda. –