Как проиграть собственный рингтон?

468
10 августа 2017, 22:13

У меня есть приложение с чатом. Каждый раз, когда в чате приходит сообщение надо проигрывать определённый звук. Звук нестандартный, он лежит в res/raw.

Я пробовал:

MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.chat_sound);
mp.start();

Но тут два недостатка:

  1. Громкость звука регулируется в разделе Media, а мне нужно чтобы громкость была как у рингтона
  2. Если начать проигрывать заново звук, в то время когда предыдущий звук ещё не доиграл, следующий не проигрывается.

Как мне проиграть собственный звуковой файл как уведомление?

Answer 1

Добавьте параметр sound в вашему объекту уведомления:

Notification notification = new Notification(...);
...
notification.sound = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + 
        "://" + getPackageName() + "/" + R.raw.notificationsound );

Либо через билдер:

NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
...
builder.setSound(Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + 
        "://" + getPackageName() + "/" + R.raw.notificationsound ););
...
Notification notification = builder.build();
READ ALSO
Чтение из папки raw

Чтение из папки raw

У меня есть две ActivityВ обеих есть ListView

428
Как побороть org.openqa.selenium.StaleElementReferenceException

Как побороть org.openqa.selenium.StaleElementReferenceException

Перебираю элементы итератором по css локаторам

405
“Time Since/Ago” metod. android studio, java

“Time Since/Ago” metod. android studio, java

Кто знает, как написать метод, который будет высчитывать сколько времени назад пользователь сделал то, или иное действие, и будет возвращать...

414
В каких методах необходим synchronized

В каких методах необходим synchronized

Подскажите, есть ли ошибки в рассужденияхнеобходимо установить модификатор synchronized только тем методам, которым необходимо

440