2012-04-26 14 views
16

¿Cómo puedo reproducir solo un sonido de notificación (sin activar una notificación en la barra de estado)? Quiero el sonido predeterminado de notificación y reproducirlo exactamente como un sonido de notificación. ¿Es posible lograrlo usando MediaPlayer?Notificación de reproducción sonido predeterminado solamente (Android)

+0

que podría hacerlo con un reproductor multimedia si acaba de encontrar el archivo de sonido. Debería poder encontrar el sonido predeterminado en algún lugar dentro de las fuentes de Android. Consulte la clase de notificación y [este] (http://stackoverflow.com/questions/4441334/how-to-play-an-android-notification-sound) pregunta. – keyser

Respuesta

27
Uri defaultRingtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 

MediaPlayer mediaPlayer = new MediaPlayer(); 

try { 
     mediaPlayer.setDataSource(context, defaultRingtoneUri); 
     mediaPlayer.setAudioStreamType(AudioManager.STREAM_NOTIFICATION); 
     mediaPlayer.prepare(); 
     mediaPlayer.setOnCompletionListener(new OnCompletionListener() { 

     @Override 
     public void onCompletion(MediaPlayer mp) 
     { 
      mp.release(); 
     } 
     }); 
    mediaPlayer.start(); 
} catch (IllegalArgumentException e) { 
e.printStackTrace(); 
} catch (SecurityException e) { 
e.printStackTrace(); 
} catch (IllegalStateException e) { 
e.printStackTrace(); 
} catch (IOException e) { 
e.printStackTrace(); 
} 
+1

Más información: http://developer.android.com/guide/topics/media/mediaplayer.html – Lobo

5
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
Ringtone r = RingtoneManager.getRingtone(context.getApplicationContext(), notification); 
r.play(); 
Cuestiones relacionadas