UILocalNotification自定义声音不在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)声音在这里

在这里输入图像说明

因此,为了启用这个function,我已经在应用程序的目标function中检查了Inter App Audio,它是closures的,如下图所示。

应用内audio的function

应用内音频的功能

然后我将其更改为开,看起来像下图所示。

更改开启后的功能

但是,它仍然不会在iOS 7设备上播放任何声音。

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

谢谢。

您是否尝试closures“请勿打扰”模式? 我有同样的问题,然后我发现“不要打扰”是。 关掉之后,这一切都是正确的。

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

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

我的猜测是你的声音没有适当地格式化,以操作系统播放。 确保你的声音格式为IMA4格式。 另外,确保你的文件在你的应用程序包中,你应该很好。

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

select本地通知的自定义声音

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

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

  1. 将文件从mp3或wav转换为caf。 正如其他答案中所述,您可以使用以下命令在terminal中转换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. 确保你的文件less于30秒,即29秒或更less。

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

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

如果仍然有问题,请检查声音文件文件是否在项目的根目录中。 检查声音文件在演出文件检查器中select“目标成员”。

我不知道为什么它工作。

但是,最后我通过创build一个新的项目xcode 5.0解决了我的问题,并将旧项目移植到这个新项目中,这确实起作用。 所以它工作,我也可以听起来。

希望它可以为别人工作。

请先尝试设置 – >通知中心 – >声音是否closures。然后检查设置 – >声音 – >滑块是否不在零。这意味着如果你有零的声音,不会让声音出现。 希望有所帮助。

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

如果用某种工具编辑mp3文件,编辑工具可能会遗漏某些东西。

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

确保声音被添加到主包中! 在这里输入图像说明