web-dev-qa-db-fra.com

Choisissez un son personnalisé pour les notifications locales

Comment changez-vous le son qui joue pour les notifications locales? J'utilise le code ci-dessous pour jouer le son par défaut:

notif.soundName = UILocalNotificationDefaultSoundName;

J'ai donc essayé ceci ci-dessous, et cela n'a pas fonctionné. Que devrais-je faire? Merci de votre aide!

notif.soundName = @"sound.caf";
31
Jack Humphries

Cela devrait fonctionner. Assurez-vous que le son est bien dans le bundle de votre application, dans le bon format (PCM linéaire ou IMA4 - à peu près n'importe où qui explique comment convertir des sons pour iOS vous dira comment le faire), et est inférieur à 30 secondes.

29
Noah Witherspoon

Vous pouvez convertir à partir de wav et mp3 en utilisant:

afconvert -f caff -d LEI16@44100 -c 1 in.wav out.caf
37
Rafael Sanches

J'ai également essayé de convertir mp3 en caf en utilisant la commande ci-dessous:

afconvert clockalarm.mp3 clockalarm.caf -d ima4 -f caff -v

ne leçon ici: J'ai passé plusieurs heures à lutter avec le son de la notification locale. J'ai essayé de convertir avec un débit et un format différents. Mais finalement, j'ai trouvé qu'il devait y avoir un défaut avec l'émulateur iOS 6.1. J'ai déployé le code sur l'appareil, cela fonctionne bien, mais sur l'émulateur, n'a pas de son.

16
Mason Zhang

J'ai rencontré tous ces problèmes (merci pour les réponses) et j'ai pu résoudre le problème en convertissant de .wav en .caf (simulateur sans 6.1). La dernière chose dont j'avais besoin était de m'assurer que le .caf était dans le bundle de mon application. Pour confirmer/corriger cela ...

Cliquez avec le bouton droit sur le fichier dans le "Project Navigator", sélectionnez "Show File Inspector" et assurez-vous que le fichier a une coche à côté de votre projet dans la zone "Target Membership". Dans mon cas, "LocalNotificationExampleTests" était le seul élément vérifié. La vérification de "LocalNotificationExample" a corrigé mon manque de son sur l'appareil.

8
Robert George

Pour Swift utilisez UNNotificationSound.init pour l'objet notif dans la fonction de planification des notifications.

Voici un exemple Swift:

func scheduleNotifications(inSeconds: TimeInterval, completion: @escaping (_ Success: Bool) ->()){
        ...
        notif.sound = UNNotificationSound.init(named: "CustomSound.mp3") 
        ...
}

Note finale, selon Apple: "Le fichier audio doit être contenu dans le bundle de l'application ou dans le dossier Library/Sounds du conteneur de données de l'application. Si des fichiers existent aux deux emplacements, le fichier dans ~/Library/Sounds sera préféré. "

2
Repose

Swift 5.1

Comment changez-vous le son qui joue pour les notifications locales. J'utilise le code ci-dessous pour jouer le son par défaut:

content.sound = UNNotificationSound.init(named: UNNotificationSoundName(rawValue: "Sound_Name.mp3"))

0
Raksha.