向通知添加声音

您是否曾经从ESPN应用程序收到过推送通知,它会以ESPN的“ da-na-na,da-na-na”声音显示最终得分? 您是否曾经考虑过上述通知,并认为我希望可以为自己的应用程序做到这一点?

不再思考。 病态向您展示如何使用自定义声音发出通知。

第一步-使用iTunes转换为.m4r

如果您有 mp3 wav 文件,则可以跳过第一步。

您需要做什么:将歌曲添加到iTunes>转换为AAC>在finder中查找>将文件扩展名从.m4a重命名为.m4r

.AAC是我们想要的。 这是有关如何在iTunes中将文件转换为AAC的更多信息https://support.apple.com/zh-cn/HT204310

第一步(替代方法)-使用Garageband转换为.m4r

在Garageband中打开文件。 编辑所需的确切声音。 Apple要求所有通知声音必须在30秒以内。

然后单击共享>将歌曲下载到iTunes…

在iTunes文件中>在Finder中显示。 然后将.m4a重命名为.m4r,单击“确定”。 将文件拖到桌面进行下一步。

第二步-将声音转换为CAF

我们需要将.m4r转换为.caf文件。 有趣的事实.caff代表核心音频文件格式。 输入此afconvert命令,该命令已存在于终端中

  afconvert -d LEI16 -f caff LEI16 @ 44100 -c 1 input_file.xxx output_file.caf 

因此,例如,如果我有文件“ ANewRecord.m4r”(没有空格),则输入以下命令:

  afconvert -f caff -d LEI16 @ 44100 -c 1 ANewRecord.m4r newRecordm4r.caf 

第三步-拖放

将新的.caf文件放入项目的Supporting Files文件夹中。 确保将您的应用选择为目标。

步骤四复制粘贴

此代码块进入您的AppDelegate.m文件。 从iOS 8开始,我们需要征求用户的许可才能发送通知。

  //在applicationDidFinishLaunchingWithOptions内 
如果([[[[UIDevice currentDevice] systemVersion] floatValue]> = 8.0){
 如果([UIApplication instanceRespondToSelector:@selector(registerUserNotificationSettings :)]) 
{
  [应用程序registerUserNotificationSettings:[UIUserNotificationSettings 
settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound类别:无]];
  } 
}

第5步-创建通知

所有本地通知的类型为UILocalNotification。 我鼓励您在业余时间研究它,因为它已经内置了一些漂亮的调度功能。 一个人可以创建一个通知,从现在开始10秒钟,甚至从现在开始10个小时。 真可爱!

该怎么办:

  • 创建UILocalNotification的实例
  • 将其alertBody设置为输入的文本
  • 将其soundName设置为我们之前创建的“ filename.caf”
  • 立即显示通知
  //AppDelegate.m //在applicationDidEnterBackground内 
UILocalNotification * notification = [[UILocalNotification alloc] init];
  notification.alertBody = @“嘿,这是一个新记录!” 
  notification.soundName = @“ newRecordm4r.caf”; 
  [[UIApplication sharedApplication] presentLocalNotificationNow:notification]; 

而已! 现在,将它们放在一起!

参考文献:

iOS音频教程:转换和录制[2014版]
本文是由三部分组成的音频教程系列的第二部分,该系列涵盖了iPhone感兴趣的音频主题 。www.raywenderlich.com

https://stackoverflow.com/questions/7170475/choose-custom-sound-for-local-notifications

苹果的文档:https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/IPhoneOSClientImp.html

在iOS应用中添加本地通知