9

Próbuję wykonać niestandardowe odtwarzanie dźwięku na powiadomieniu paska stanu. Plik .mp3 jest w postaci res/raw/. Ale kiedy powiadomię użytkownika, dźwięk nie jest odtwarzany. Próbowałem z MediaPlayerem i działa, ale nie chcę, aby gra była odtwarzana za pomocą MediaPlayer.Nie słychać dźwięku powiadomienia

Oto moja metoda:

public void showNotification() 
{ 
     String ns = Context.NOTIFICATION_SERVICE; 
     NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns); 

     int icon = R.drawable.feedback;  // icon from resources 
     CharSequence tickerText = mContext.getString(R.string.statusbar_notification); // ticker-text 
     long when = System.currentTimeMillis();   // notification time 
     Context context = getApplicationContext();  // application Context 
     CharSequence contentTitle = mContext.getString(R.string.statusbar_notification); // message title 
     CharSequence contentText = mContext.getString(R.string.statusbar_notificatione_detailed);  // message text 

     Intent notificationIntent = new Intent(mContext, Main.class); 
     PendingIntent contentIntent = PendingIntent.getActivity(mContext, 0, notificationIntent, 0); 

     // the next two lines initialize the Notification, using the configurations above 
     Notification notification = new Notification(icon, tickerText, when); 

     //notification.defaults |= Notification.DEFAULT_SOUND; 
     notification.defaults |= Notification.DEFAULT_VIBRATE; 
     notification.sound = Uri.parse("android.resource://" + getPackageName() + "/R.raw.notificationsound"); 

     notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); 
     mNotificationManager.notify(1, notification); 
} 

Dzięki.

Odpowiedz

26

Z dokumentacji ContentResolver:

URI powinien być jednym z następujących formatów: android.resource: // package_name/ID_NUMBER

są przechodzącą ciąg „R. raw.notificationsound "co oznacza nic. Zamiast tego spróbuj tego:

notification.sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.notificationsound); 
+0

Jak ustawić cykl trwania dla tych dźwięków powiadomienia ... jak powtórzyć wzór na tych –

Powiązane problemy