本地通知声音没有播放?

时间:2014-03-17 03:16:27

标签: ios objective-c audio uilocalnotification

我对本地通知有这个问题,他们没有播放声音。我测试了默认的一个和自定义的那个显然是我想玩但没有!我看了很多人都面临这个问题,但他们的解决方案都没有对我有用。

UILocalNotification *local

- (IBAction)Dateaction:(id)sender {

    local = [[UILocalNotification alloc]init];
    local.timeZone = [NSTimeZone defaultTimeZone];
    local.alertBody = [NSString stringWithFormat:@"%@ Recuerda que tienes que: %@", [[NSUserDefaults standardUserDefaults] objectForKey:@"user"], [[NSUserDefaults standardUserDefaults] objectForKey:@"selected"]];
    local.fireDate = [self.DatePicker date];
   /* if ([[self.userdefaults objectForKey:@"sound"]isEqualToString:@"sound1"]) {
        local.soundName = @"sound1.caf";
    }else if([[self.userdefaults objectForKey:@"sound"]isEqualToString:@"sound2"]){
        local.soundName = @"sound2.caf";
    }else if([[self.userdefaults objectForKey:@"sound"]isEqualToString:@"sound1"]){
        local.soundName = @"sound3.caf";
    }else{
        local.soundName = @"sound1.caf";
    }*/
    local.soundName = UILocalNotificationDefaultSoundName;


}

- (IBAction)switchChanged:(id)sender {
if(self.NotSwith.isOn == YES){
        [[UIApplication sharedApplication] scheduleLocalNotification:local];


       }
}

4 个答案:

答案 0 :(得分:6)

可能是一个相对简单的解决方案:你能测试它是否在模拟器中有效吗?如果它在模拟器中工作而不在设备中,我建议确保静音开关没有打开(昨天花了4个小时搞清楚)。

答案 1 :(得分:2)

嗯, 有趣的是,我改变了

的顺序
notification.SoundName = UILocalNotification.DefaultSoundName;
notification.ApplicationIconBadgeNumber = 1;

notification.ApplicationIconBadgeNumber = 1;
notification.SoundName = UILocalNotification.DefaultSoundName;

现在可以使用了。当应用程序在后台运行时,本地通知将触发并播放默认通知声音。

答案 2 :(得分:0)

确保使用

清除旧通知
UIApplication* app = [UIApplication sharedApplication];
NSArray*  oldNotifications = [app scheduledLocalNotifications];

//在安排新通知之前清除旧通知。

[app cancelAllLocalNotifications];

如果您不想取消所有通知,请尝试更改徽章编号和声音名称的顺序。

希望这可以解决您的问题。

答案 3 :(得分:0)

在我的情况下,模拟器工作正常。 iPad将播放音乐等 问题是: 在iPad上的音量控制旁边,振铃开关处于关闭状态。 这阻止了警报声音通过。