我在应用程序中使用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)通知中心
(2)申请
(3)声音在这里关闭
因此,要启用此功能,我已在应用程序的目标中的功能中检查了Inter App Audio,它已关闭,如下图所示。
应用内音频中的功能
然后我将其更改为On,它看起来如下图所示。
然而,它仍然没有在iOS 7设备中播放任何声音。
有没有人知道它为什么不起作用?这将是一个很大的帮助。
感谢。
答案 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)
我遇到了同样的问题,我必须执行以下步骤:
将文件从mp3或wav转换为caf。 如其他答案中所述,您可以使用以下命令转换终端中的wav,aif和mp3文件:
afconvert -f caff -d LEI16@44100 -c 1 in.mp3 out.caf
您还可以使用以下内容将Quicktime 7导出为.aif 设置线性PCM速率44.100线性PCM样本大小16这些aif 似乎支持文件。
确保文件少于30秒,即29秒或更短。
将文件添加到捆绑包的根目录,您可以将其拖放到Xcode中或右键单击“将文件添加到(projectname)”
请注意,您必须选择以下选项:
a)目的地复制项目(如果需要)
b)添加到目标(您的构建名称)
4)通过名称引用文件,包括扩展名,例如
notif.soundName = @"sound.caf";
确保您在测试之间从设备/模拟器中删除该应用,否则您将看不到更改的结果。
如果仍有问题,请检查声音文件文件是否在项目的根目录中。 检查声音文件在节目文件检查器中选择“目标成员资格”。
答案 4 :(得分:0)
我不知道它为什么会起作用。
但是,最后我通过制作一个新项目xcode 5.0并将旧项目移植到这个新项目来解决我的问题,这确实有效。所以它正在工作,我也能听到声音。
希望它也适用于其他人。
答案 5 :(得分:0)
请先尝试设置 - > notificationcenter->声音是否关闭。然后检查设置 - >声音 - >滑块是否不为零。这意味着如果你的声音为0则不允许声音要响起来。希望有所帮助。
答案 6 :(得分:0)
检查“声音效果”是不是静音还是低音。音量可能很高但如果音效音量静音,则可能听不到本地通知。当你在iOS的主屏幕上然后按下音量增大按钮时,你可以增加它。
答案 7 :(得分:0)
如果使用某个工具编辑mp3文件,编辑工具可能会遗漏某些内容。
在尝试播放mp3文件作为本地通知声音时,我遇到了类似的问题。 声音短于30秒,它被捆绑在一起,表面上的一切都显得规则。 几个小时后,我意识到问题是由在线mp3切割工具引起的。 我找到了更好的编辑器,并且文件在通知时变得可玩。
答案 8 :(得分:0)