Custom Sound For UILocal NOtificaton - iphone

i want custom sound like runtime recorded message should be played for Alaram alert
but how we can it be possible ?

Sure.
UILocalNotification *ln = [[UILocalNotification alloc] init];
ln.soundName = [NSString #"mysound.wav"];
...

Related

Can I send a Local Notification with no sound?

I want to have a few local notifications with no display and no sound, but only a vibration. I can get it to do no display, by simply setting alertBody to #"", but how can I send no sound? I am thinking if I don't get a better way from you guys, that I will be able to just make a sound that is empty, add it to my project, then set soundName to that sound. But is there any sort of default way to do this?
If I add a phony sound name it still plays the default notification sound.
Thanks!!
No you can not disable sound because UILocalNotification does not provide any option for this. So better option is as you told in your question to use a empty sound file.
Yes you can add another sound file.
NSString *soundFile=#"temp.mp3";
UILocalNotification* localNotification = [[UILocalNotification alloc] init];
if (localNotification==nil) {
return;
}
localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:60];
localNotification.alertBody = #"Your alert message";
localNotification.soundName = soundFile;
localNotification.timeZone = [NSTimeZone defaultTimeZone];
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
In above code just put the name of sound file which you have saved in your resources in place of "soundFile" string.
You can not set sound.or
-(void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)responsewithCompletionHandler:(void (^)())completionHandler{
NSDictionary * userInfo = response.notification.request.content.userInfo;
if([response.notification.request.trigger isKindOfClass:[UNCalendarNotificationTrigger class]]) {}
else{}
//don't write UNNotificationPresentationOptionSound
completionHandler(UNNotificationPresentationOptionAlert | UNNotificationPresentationOptionBadge);
}
Local Notification with no sound
try below this code
let content = UNMutableNotificationContent()
content.sound = nil

Set local notification sound from Main bundle

I give a custom sound to local notification, but it is not working.
notif.soundName = #"sound.caf";
it's play default sound why?
Thanks.
Maybe you don‘t add the sound file (*.caf) in Xcode project: Build Phases/Copy Bundle Resources.
I have done notification successfully with the code below.
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil)
return;
/* NSDateFormatter *formatDate=[[NSDateFormatter alloc]init];
[formatDate setDateFormat:#"MM/dd/yyyy"];
[formatDate setTimeZone:[NSTimeZone systemTimeZone]];
NSDate *strDate=[formatDate dateFromString:txtDate.text];
*/
localNotif.fireDate = itemDate;
//localNotif.timeZone = [NSTimeZone systemTimeZone];
NSLog(#"the item date is %#",localNotif.fireDate);
// Notification details
//localNotif.alertBody = [eventText text];]
localNotif.alertBody=strEvent;
// Set the action button
localNotif.alertAction = #"View";
//localNotif.soundName = #"Acoustic Noodling 01.caf";
localNotif.soundName=#"alarm1.aif";
About playing custom sounds in Local notifications
Make sure the sound is actually in your app’s bundle, is in the correct format (linear PCM or IMA4
Assume that notification is an object of type UILocalNotification.
notification.soundName = #"sound.caf";
If this doesn't work initially then you may refer to this post and there in refer to This Answer That tells us to use sound file of the correct format (i.e. either Linear PCM or IMA4).
Just use relative path of your file rather than providing absolute or full path.
For example:
localNotification.soundName = #"../Documents/recordedFileName.caf";
Also, keep in mind that recordDuration of file should be less than or equal to 29 seconds.
That's it, hope that answered.

iphone doesn't play the notification sound

I add sound to my notification, but it is not played.
I tried these:
notif.soundName = UILocalNotificationDefaultSoundName;
notif.soundName = #"sound.caf";
help??
So does your full code (sound only) look like this?
UILocalNotification *notif = [[UILocalNotification alloc] init];
notif.firedate = //Whenever
notif.soundName = UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication] scheduleLocalNotification:notif];
If your code checks out, then it must be an issue with the iPhone. Does it work in the simulator?

How change the sound name of local notification?

I have an application in which i have button. When i click on button then generate a local notification. The variable of local notification is set in appDelegate file. For generate local notification i used this code:-
UILocalNotification* ln = [[UILocalNotification alloc] init];
ln.alertBody = #"Time for another cup of coffee!";
ln.applicationIconBadgeNumber = 1;
ln.fireDate = notification_date; //[NSDate dateWithTimeIntervalSinceNow:15];
ln.timeZone = [NSTimeZone timeZoneWithAbbreviation:#"GMT"];
NSString *string_date=[formatter stringFromDate:notification_date];
NSDateFormatter* formatter_alarm = [[[NSDateFormatter alloc] init] autorelease];
formatter_alarm.timeZone = [NSTimeZone timeZoneWithAbbreviation:#"GMT"];
[formatter_alarm setDateFormat:#"hh:mm a"];
NSString *str=[formatter_alarm stringFromDate:notification_date];
appDelegate.alarm_time=[NSString stringWithFormat:#"%#",str];
NSLog(#"%#",appDelegate.alarm_time);
[[NSUserDefaults standardUserDefaults] setObject:appDelegate.alarm_time forKey:#"alarm_on_time"];
[[NSUserDefaults standardUserDefaults] setObject:string_date forKey:#"alarm_on_date"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(#"alarm will activate on%#",notification_date);
ln.soundName = #"alarm.wav";
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
ln.repeatInterval=NSDayCalendarUnit;
[[UIApplication sharedApplication] scheduleLocalNotification:ln];
// if(appDelegate.appDelegate_notification ==nil)
// appDelegate.appDelegate_notification= [[UILocalNotification alloc] init];
appDelegate.appDelegate_notification=ln;
[ln release];
Now i have a another button which is used for change the sound of local notification. I wan t that when user click on that button then change the sound of local notification. For that purpose i use this code:-
appDelegate.appDelegate_notification.soundName = #"Blow.wav";
Now problem is that when i click on another button then sound of local notification is not changed. How make that event on button click?
Thanks in advances...
When we generate any local notification then we can set sound file at that time . If we want to set sound after setting notification then i get only one way that i share here. When we edit any sound of alert then first we have to save fire date of alert and after that we will cancel that alert and set a new alert with same fire date anad this time we will pass new sound file. I use this and working fine.

How to initialize local notification?

I want to implement local notification in my clock app.Basically i want that a music file should be played after every half an hour like in ship's clock in which chimes are played after every 30 minutes.
Can anyone give rough idea as how i can implement this functionality even when the app enters in background?
I recently used the Local notification stuff and used the following functions
//Setting up the Local Notifications
for (int i= 1 ; i<=10; i++) { //We here set 10 Notification after every 30 minutes from now you can modify it accordingly
NSDate *scheduled = [[NSDate date] dateByAddingTimeInterval:60*30*i]; //These are seconds
NSDictionary* dataDict = [NSDictionary dictionaryWithObjectsAndKeys:scheduled,FIRE_TIME_KEY,#"Background Notification received",NOTIFICATION_MESSAGE_KEY,nil];
[self scheduleNotificationWithItem:dataDict];
}
Where scheduleNotificationWithItem is defined as
- (void)scheduleNotificationWithItem:(NSDictionary*)item {
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
if (localNotification == nil) return;
localNotification.fireDate = [item valueForKey:FIRE_TIME_KEY];
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.alertBody = [NSString stringWithFormat:NSLocalizedString(#"%#", nil), [item valueForKey:NOTIFICATION_MESSAGE_KEY]];
localNotification.alertAction = NSLocalizedString(#"View Details", nil);
localNotification.soundName = UILocalNotificationDefaultSoundName;
localNotification.userInfo = item;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
[localNotification release];
}
Finally you can handle these notifications as
You can handle these notifications as follows
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
// Do the required work you can obtain additional Info via notification.userInfo which happens to be a dictionary
}
reading the developer documentation will help you more to understand the stuff.Hope it helps
You can use UILocalNotifications and set their 'firedate', according to your requirement and then schedule the notification. These notifications doesn't bother whether your app is running or is in background they will always show up like an alertview.