本地通知声音没有播放?

Posted

技术标签:

【中文标题】本地通知声音没有播放?【英文标题】:Local Notification sound not playing? 【发布时间】:2014-03-17 03:16:26 【问题描述】:

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

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];


       

【问题讨论】:

您忘记了第一行代码中的;。应该是 UILocalNotification *local; 而不是 UILocalNotification *local 对不起,我发帖的时候说的,显然在我的项目中它很好,否则它甚至不会运行,问题是当通知显示在设备中时没有声音。 您的应用在发送通知时处于什么状态?请记住,如果应用程序不在最前面且不可见,则系统会显示警报消息,标记应用程序,并播放通知中指定的声音。如果系统传递通知时应用程序处于最前面且可见,则不会显示警报,不会标记图标,也不会播放声音。 在激活开关时安排通知,处于活动状态... 【参考方案1】:

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

【讨论】:

嗯,不,它也不能在模拟器中工作,在设备中我得到两次静音已经关闭......我对此感到疯狂!哈哈【参考方案2】:

嗯, 有趣的是,我改变了顺序

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

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

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

【讨论】:

【参考方案3】:

确保您正在清理旧通知

UIApplication* app = [UIApplication sharedApplication];
NSArray*  oldNotifications = [app scheduledLocalNotifications];

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

[app cancelAllLocalNotifications];

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

希望这能解决您的问题。

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于本地通知声音没有播放?的主要内容,如果未能解决你的问题,请参考以下文章

声音文件未在本地通知 iOS7 上播放

显示没有声音的本地通知[重复]

在 iPod 库的本地通知中播放声音

如何在本地通知上播放不同的声音文件

iPhone:如何独立于音量设置大声播放本地通知声音?

本地通知警报声音不在 iPad 上播放,但在 iPhone 上播放相同