向通知添加声音
您是否曾经从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应用中添加本地通知