DEEPAK kumar DEEPAK kumar - 5 months ago 20
iOS Question

Custom sound not played when push notification arrives

I am having some trouble setting the message sound for my app.

I am Newly work on Push Notification. Notification is working fine .but I'm unable to add Custom sound when push notification arrives. Receive payload data to server. In which push notification delegate method to add custom ring code.

Code

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound);
UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:userNotificationTypes categories:nil];
[application registerUserNotificationSettings:setting];
[application registerForRemoteNotifications];


NSDictionary *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

if (notification) {
NSString *cancelTitle = @"Reject";
NSString *showTitle = @"Accept";
NSString *message = @"This is Testing";
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Order"
message:message
delegate:self
cancelButtonTitle:cancelTitle
otherButtonTitles:showTitle, nil];
[alertView show];
} else {
// from the springboard
}

return YES;
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
UIApplicationState state = [application applicationState];
if (state == UIApplicationStateActive ) {

NSString *ring = [NSString stringWithFormat:@"%@",[[userInfo objectForKey:@"aps"] objectForKey:@"sound"]];

NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@",[[NSBundle mainBundle] resourcePath],ring]];

NSError *error;

audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = 0;
[audioPlayer play];


NSString *cancelTitle = @"Close";
NSString *showTitle = @"Show";
NSString *message = @"This is Testing";
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Some title"
message:message
delegate:self
cancelButtonTitle:cancelTitle
otherButtonTitles:showTitle, nil];
[alertView show];
}else{



}

Answer

Please use this code, it will be help you out

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
    {
            UIApplicationState state = [application applicationState];
           if (state == UIApplicationStateActive ) {

          //     NSString *ring = [NSString stringWithFormat:@"%@",[[userInfo objectForKey:@"aps"] objectForKey:@"sound"]];

         //      NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@",[[NSBundle mainBundle] resourcePath],ring]];

           //    NSError *error;

          //     audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
         //      audioPlayer.numberOfLoops = 0;
         //      [audioPlayer play];

         NSString *path =[[NSBundle mainBundle] pathForResource:@"circuit___ios_7" ofType:@"mp3"];
              SystemSoundID soundID;
                AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:path], &soundID);

         AudioServicesPlaySystemSound(soundID);

                NSString *cancelTitle = @"Close";
                NSString *showTitle = @"Show";
                NSString *message = @"This is Testing";
                UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Some title"
                                                                    message:message
                                                                   delegate:self
                                                          cancelButtonTitle:cancelTitle
                                                          otherButtonTitles:showTitle, nil];
                [alertView show];
              }else{



              }
}
Comments