UILocalNotification自定义声音不在iOS7中播放

时间:2013-10-12 05:12:13

标签: iphone ios audio ios7 uilocalnotification

我在应用程序中使用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张到第3张图片以查看我查看过的内容。

(1)通知中心

(1) Notification Center

(2)申请

enter image description here

(3)声音在这里关闭

enter image description here

因此,要启用此功能,我已在应用程序的目标中的功能中检查了Inter App Audio,它已关闭,如下图所示。

应用内音频中的功能

Capabilities in Inter-app audio

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

Capabilities after changed On

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

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

感谢。

9 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:2)

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

afconvert -f caff -d LEI16@44100 -c 1 wolf.wav wolf_out.caf

答案 2 :(得分:1)

我的猜测是你的声音格式不适合操作系统播放。确保您的声音格式为IMA4格式。另外,请确保您的文件在您的应用程序包中,并且您应该很高兴。

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

Choose custom sound for Local Notifications

以下是Apple's Local and Push Notification Guide的链接。它详细解释了声音和可以使用的默认声音。

答案 3 :(得分: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中或右键单击“将文件添加到(projectname)” 请注意,您必须选择以下选项: a)目的地复制项目(如果需要) b)添加到目标(您的构建名称) 4)通过名称引用文件,包括扩展名,例如 notif.soundName = @"sound.caf";

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

    如果仍有问题,请检查声音文件文件是否在项目的根目录中。 检查声音文件在节目文件检查器中选择“目标成员资格”。

答案 4 :(得分:0)

我不知道它为什么会起作用。

但是,最后我通过制作一个新项目xcode 5.0并将旧项目移植到这个新项目来解决我的问题,这确实有效。所以它正在工作,我也能听到声音。

希望它也适用于其他人。

答案 5 :(得分:0)

请先尝试设置 - > notificationcenter->声音是否关闭。然后检查设置 - >声音 - >滑块是否不为零。这意味着如果你的声音为0则不允许声音要响起来。希望有所帮助。

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

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

答案 8 :(得分:0)

确保声音已添加到主束中! enter image description here