I set up a notification with a custom sound like so:
var soundNames = ["Default", "Alert1", "Alert2", "Alert3", "Alert4", "Alert5", "Alert6", "Alert7", "Alert8", "Alert9", "Alert10"]
func addNotification(title: String, timeInt: TimeInterval, image: Data?, soundName: String?) {
let content = UNMutableNotificationContent()
content.title = title
content.sound = UNNotificationSound(named: UNNotificationSoundName(rawValue: "\(soundName!).caf"))
var trigger: UNTimeIntervalNotificationTrigger
trigger = UNTimeIntervalNotificationTrigger(timeInterval: timeInt, repeats: true)
// choose a random identifier
let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger)
// add our notification request
UNUserNotificationCenter.current().add(request)
saveConceptCard(id: request.identifier, title: title, image: image)
}
Now I want to get the name of the custom sound I used when I retrieve the specific notification request from its id
var notification: UNNotificationRequest
I try to get the sound name like so:
let sound = notification.content.sound!.debugDescription
But this returns:
<UNNotificationSound: 0x2822419d0>
Is there a way to get the filename from that code?
you have to convert your text into speech by using AVFoundation framework
when you push your notification you also have to push AVSpeechSynthesizer
here is how you set it:
Here is the voice action: