2012-04-26 16 views
16

Come è possibile riprodurre solo un suono di notifica (senza attivare una notifica sulla barra di stato)? Voglio il suono predefinito della notifica e riprodurlo esattamente come un suono di notifica. È possibile raggiungerlo utilizzando MediaPlayer?Riproduci solo audio di notifica predefinito (Android)

+0

si potrebbe fare con un mediaplayer se basta trovare il file audio. Dovresti essere in grado di trovare il suono predefinito da qualche parte all'interno delle fonti Android. Dai un'occhiata alla domanda Notification e [this] (http://stackoverflow.com/questions/4441334/how-to-play-an-android-notification-sound). – keyser

risposta

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

Ulteriori informazioni: 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(); 
Problemi correlati