17

UILocalNotification在应用程序中使用。

在应用程序中有两种有条件播放的声音——我为它们应用了适当的条件。

但是当我安装应用程序并在设备上运行它时iOS 7,它会触发本地通知,但应用程序中没有播放声音。

下面给出了设置通知的代码:

    UILocalNotification *localNotification = [[UILocalNotification alloc] init];
    if (localNotification == nil)
        return;
    localNotification.fireDate = [pickerView date];

    localNotification.timeZone = [NSTimeZone defaultTimeZone];

    if (alarm_number == 1) {
        localNotification.alertBody = [NSString stringWithFormat:@"First Alarm"];
    }
    else
    {
        localNotification.alertBody = [NSString stringWithFormat:@"Second Alarm"];
    }

    localNotification.alertAction =@"Ok";

    NSString *message = [[NSString alloc]initWithString:@""];

    if(alarm_number == 1)
    {
        localNotification.soundName=@"Alarm_1.mp3";
        message = @"First Alarm Scheduled";
    }
    else
    {
        localNotification.soundName=@"Alarm_2.mp3";
        message = @"Second Alarm Scheduled";
    }

    localNotification.applicationIconBadgeNumber = 1;

    // Specify custom data for the notification
    NSString *alarmString;
    if (alarm_number==1) {
        alarmString = [NSString stringWithFormat:@"First Alarm"];
    }
    else
    {
        alarmString = [NSString stringWithFormat:@"Second Alarm"];
    }

    NSDictionary *infoDict = [NSDictionary dictionaryWithObject:alarmString forKey:@"AlarmFor"];

    localNotification.userInfo = infoDict;

    // Schedule the notification
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
    [localNotification release];

我检查的是我的应用程序设置/通知中心应用程序中的声音设置。

请浏览第一至第三张图片以查看我检查过的内容。

(1) 通知中心

(1) 通知中心

(2) 申请

在此处输入图像描述

(3) 这里没有声音

在此处输入图像描述

因此,为了启用此功能,我在应用程序的 Targets 中的Capabilities中检查了 Inter App Audio,如下图所示,它处于关闭状态。

应用间音频中的功能

应用间音频中的功能

然后我将其更改为 On,如下图所示。

更改后的功能

然而,它仍然没有在 iOS 7 设备中播放任何声音。

有人知道为什么它不起作用吗?这将是一个很大的帮助。

谢谢。

4

9 回答 9

10

您是否尝试关闭“请勿打扰”模式?我有同样的问题,然后我发现“请勿打扰”已开启。关闭后,一切正常。

于 2014-03-10T19:09:53.893 回答
3

尝试使用.caf文件而不是.mp3

afconvert -f caff -d LEI16@44100 -c 1 wolf.wav wolf_out.caf
于 2015-04-21T05:50:02.310 回答
2

我的猜测是您的声音格式不适合操作系统播放。确保您的声音以 IMA4 格式格式化。另外,请确保您的文件在您的应用程序包中,您应该一切顺利。

有关更多参考和类似问题,请参阅此 SO 问题。

为本地通知选择自定义声音

这是Apple 的本地和推送通知指南的链接。它详细解释了声音和可以使用的默认声音。

于 2014-01-25T12:43:50.067 回答
1

我遇到了同样的问题,我必须执行以下步骤:

  1. 将文件从 mp3 或 wav 转换为 caf。如其他答案所述,您可以使用以下命令在终端中转换 wav、aif 和 mp3 文件:

    afconvert -f caff -d LEI16@44100 -c 1 in.mp3 out.caf

  2. 您还可以使用 Quicktime 7 导出为 .aif,设置如下: 线性 PCM 速率 44.100 线性 PCM 样本大小 16 似乎支持这些 aif 文件。

  3. 确保您的文件少于 30 秒,即 29 秒或更少。

  4. 将文件添加到包的根目录,您可以拖放到 Xcode 中或右键单击“将文件添加到(项目名称)”注意您必须选择以下选项:a)Destination Copy items if needed b)添加到目标(您的构建name(s)) 4) 按文件名引用文件,包括扩展名,例如 notif.soundName = @"sound.caf";

确保在测试之间从设备/模拟器中删除应用程序,否则您将看不到更改的结果。

如果您仍然有问题,请检查声音文件文件是否在项目的根目录中。检查在显示文件检查器中选择了声音文件“Target Membership”。

于 2016-11-04T12:53:27.320 回答
0

检查“声音效果”是否静音或低。音量可能很高,但如果声音效果音量为静音,则本地通知可能不会响起。当你在 iOS 的主屏幕时,你可以增加它,然后按音量增大按钮。

于 2014-04-25T21:09:12.940 回答
0

我不知道为什么它确实有效。

但是,最后我通过在 Xcode 5.0 中创建一个新项目并将旧项目移植到这个新项目来解决了我的问题。所以它正在工作,我也可以听到声音。

于 2013-10-26T19:45:56.627 回答
0

请先尝试设置->通知中心->声音是否未关闭。然后检查设置->声音->滑块是否不为零。这意味着如果您的声音为零,则不允许声音出现。希望有帮助。

于 2014-04-22T10:49:01.853 回答
0

如果使用某些工具编辑 mp3 文件,则编辑工具可能遗漏了某些内容。

我在尝试将 mp3 文件作为本地通知声音播放时遇到了类似的问题。声音不到 30 秒,它被捆绑在一起,表面上看起来一切正常。几个小时后,我意识到问题是由在线 mp3 切割工具引起的。我找到了更好的编辑器,并且文件在通知时变得可播放。

于 2015-03-30T20:54:08.453 回答
0

确保将声音添加到主包中!在此处输入图像描述

于 2016-07-31T02:36:10.090 回答