繁体   English   中英

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

[英]UILocalNotification custom sound is not playing in iOS7

我在应用程序中使用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) 声音在此处关闭

在此处输入图片说明

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

应用间音频功能

应用间音频功能

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

更改后的能力

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

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

谢谢。

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

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

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

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

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

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

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

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

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

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

  2. 您还可以使用 Quicktime 7 导出为 .aif,并使用以下设置 Linear PCM Rate 44.100 Linear PCM sample size 16 这些 aif 文件似乎受支持。

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

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

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

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

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

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

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

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

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

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

确保声音已添加到主包中! 在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM