![](/img/trans.png)
[英]iOS 4.3, iPhone 4 not playing custom sound with UILocalNotification
[英]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) 通知中心
(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 的本地和推送通知指南的链接。 它详细解释了声音和可以使用的默认声音。
我遇到了同样的问题,我必须执行以下步骤:
将文件从 mp3 或 wav 转换为 caf。 如其他答案所述,您可以使用以下命令在终端中转换 wav、aif 和 mp3 文件:
afconvert -f caff -d LEI16@44100 -c 1 in.mp3 out.caf
您还可以使用 Quicktime 7 导出为 .aif,并使用以下设置 Linear PCM Rate 44.100 Linear PCM sample size 16 这些 aif 文件似乎受支持。
确保您的文件少于 30 秒,即 29 秒或更短。
将您的文件添加到您的包的根目录,您可以拖放到 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.