2016-07-23 3 views
0

Я пытаюсь переопределить звук уведомления и воспроизвести собственный звук уведомления. Текущий код:Переопределение уведомления Звук Android

NotificationCompat.Builder mBuilder = 
    new NotificationCompat.Builder(context) 
    .setSmallIcon(R.drawable.ic_notifications_white_24dp) 
    .setContentTitle(text) 
    .setColor(context.getResources().getColor(R.color.colorAccent)) 
    .setSound(soundUri); 
// Sets an ID for the notification 
int mNotificationId = 2580; 

// Gets an instance of the NotificationManager service 
NotificationManager mNotifyMgr = 
    (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
// Builds the notification and issues it. 
mNotifyMgr.notify(mNotificationId, mBuilder.build()); 

но оригинальное уведомление переопределение (по звуку) мой звук. есть ли способ сделать это?

Edit:

, когда я пытаюсь воспроизвести звук и звук играет. иногда исходный звук является первым, и вначале воспроизводится пользовательский звук.

Я хочу услышать только собственный звук.

+0

Как вы определили soundUri? Если воспроизводится звук по умолчанию, это может указывать на то, что setSound (soundUri) не устанавливает звук должным образом (например, неправильный путь) – W0rmH0le

ответ

0

Создать res/raw папку и поместить звук для уведомлений в эту папку

Попробуйте

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

Есть несколько вещей, которые вы должны иметь в виду при предоставлении звука пользовательских уведомлений.

  • Sound Uri
    Ваш soundUri должно быть что-то вроде этого:

    Uri soundUri = Uri.parse("android.resource://" + context.getPackageName() + "/" + R.raw.yourSound);

  • Уведомление по умолчанию
    Убедитесь, что вы не использовали .setDefaults(DEFAULT_SOUND | DEFAULT_ALL);
    Многие разработчики отмечают, что с помощью .setDefaults() без DEFAULT_SOUND как-то переопределяет ваш собственный звук. Поэтому полностью удалите .setDefaults().

  • Длина звукового файла
    Я слышал сообщения о том, что звук не воспроизводится, потому что звуковой файл слишком длинный. Попробуйте ограничить его до 5 секунд.

Согласно кодексу, вы в курсе, только возможная ошибка может быть из-за недопустимого soundUri, чтобы дать что взгляд.

Смежные вопросы