在OS8.3之后播放本地通知自定义声音

时间:2015-07-05 19:32:20

标签: ios uilocalnotification

只要Apple将其操作系统更新为8.3,我的本地自定义声音就不会播放。

我已经做好了一切,因为它工作了< = 8.2,所以代码应该不是问题,但以防这是我创建通知的方式:

仅供参考,他们是30秒或更短

首先我使用Apples supplied code

将它们转换为caf格式

然后我将它添加到我的项目中。我已经在我的资源包中验证了它。我还验证了他们已被分配到目标。

它仍然没有播放,但在所有以前的操作系统版本中都有。

这是我的日程表方法:

- (void) scheduleLocalNotification {
NSString *localNotificationSound;
localNotificationSound = [[NSBundle mainBundle] pathForResource:@"Clock" ofType:@".caf"];

UILocalNotification *timerDoneNotification = [[UILocalNotification alloc] init];
timerDoneNotification.soundName = localNotificationSound;
timerDoneNotification.alertBody = @"Time Up!";
timerDoneNotification.alertAction = @"Reset";
timerDoneNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:secondsLeft];
timerDoneNotification.timeZone = [NSTimeZone defaultTimeZone];
[[UIApplication sharedApplication] scheduleLocalNotification:timerDoneNotification];
}

1 个答案:

答案 0 :(得分:0)

我没有阅读有关如何成为非本地化资源的部分:

  

您可以将音频数据打包到aiff,wav或caf文件中。然后,在Xcode中,将声音文件作为应用程序包的非本地化资源添加到项目中。

所以我所做的就是将文件名包装在stringWithFormat中,并在v8.3之后开始工作

timerDoneNotification.soundName = [NSString stringWithFormat:@"%@", localNotificationSound];
相关问题