用户获取推送通知时如何播放自定义声音文件?

时间:2014-01-17 06:52:12

标签: ios objective-c push-notification

我在应用程序包中有一个声音文件,我想在用户获得推送通知时播放该声音文件。

是否可以在iOS中使用,那么请建议实现此目的的方法。

谢谢,

2 个答案:

答案 0 :(得分:18)

要播放此声音,您必须在通知有效负载中指定声音的文件名。例如,假设您已将名为example.caf的声音文件添加到应用程序中,我们可以使用通知有效负载播放此声音,如下所示:

{
    aps =     
    {
        alert = "test example notification message";
        sound = "example.caf";
    };
}

然后,当您的通知到达时,将播放自定义声音。

答案 1 :(得分:7)

在app delegte类中使用此方法。

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

    if (state == UIApplicationStateActive)
    {

        NSLog(@"User Info : %@", [userInfo description]);

        NSLog(@"User Info Alert Message : %@", [[userInfo objectForKey:@"aps"] objectForKey:@"alert"]);

        NSString *messageString = [NSString stringWithFormat:@"%@", [[userInfo objectForKey:@"aps"] objectForKey:@"alert"]];

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

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

        NSError *error;

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

    }


}