views:

114

answers:

3

Hi

I have successfully scheduled local notifications in my app using the code below:

Class cls = NSClassFromString(@"UILocalNotification");

    if (cls != nil) {

        UILocalNotification *notification = [[cls alloc] init];
        notification.fireDate = self.alarmNotificationDate;
        notification.timeZone = [NSTimeZone defaultTimeZone];

        notification.alertBody = @"Alarm is due";
        notification.alertAction = @"Show Alarm";

        notification.soundName = @"alarm.mp3";

        [[UIApplication sharedApplication] scheduleLocalNotification:notification];
        [notification release];

Where self.alarmNotificationDate is a NSDate assign in another method.

All works fine in the simulator, but when I test on my trusted old iPhone 3G running iOS4 I get the notification, but only with the default sound.

I have tried with different sound files but no success.

Any clue why it could be like this and how to correct it?

Thanks

A: 

There could be a couple of reasons:

  1. Is your sound file included in your bundle? (most likely, seeing as it works on the simulator)
  2. The Apple documentation says to not use compressed audio formats. See the link here. The reason for this being that the iPhone hardware can only play one compressed audio file at a time, and so it is not recommended to use one for the alarm as well, in case the user is already listening to a song from iTunes.
Itay
I'm currently using a MP3 so that could be the case. Will try with another format and see how it works. Thanks.
Structurer
Sorry for late feedback but I got stuck in another project. Tested with an AIF file and worked fine. Thanks.
Structurer
A: 

Did you spell the name of the sound using the same upper/lower case encoding in both the file name and the filename?

hotpaw2
I have had that problem before, so whenever something like this doesn't work I always copy the actual filename into the code. But thanks for your suggestion.
Structurer
A: 

UILocalNotification does not support mp3. It only supports the formats and containers mentioned on the reference page.

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html

Because custom alert sounds are played by the iOS system-sound facility, they must be in one of the following audio data formats:

  Linear PCM
  MA4 (IMA/ADPCM)
  µLaw
  aLaw

You can package the audio data in an aiff, wav, or caf file.

Jonny
Thanks. Now working with AIF file.
Structurer