为本地通知选择自定义声音

Jac*_*ies 31 iphone notifications objective-c ipad ios

如何更改播放本地通知的声音?我使用下面的代码播放默认声音:

notif.soundName = UILocalNotificationDefaultSoundName;
Run Code Online (Sandbox Code Playgroud)

所以,我在下面尝试了这个,它没有用.我该怎么办?谢谢你的帮助!

notif.soundName = @"sound.caf";
Run Code Online (Sandbox Code Playgroud)

Raf*_*hes 37

你可以使用以下方法从wav和mp3转换:

afconvert -f caff -d LEI16@44100 -c 1 in.wav out.caf
Run Code Online (Sandbox Code Playgroud)


Noa*_*oon 29

这应该工作.确保声音实际上在你的应用程序包中,格式正确(线性PCM或IMA4 - 几乎在任何地方解释如何转换iOS的声音将告诉你如何做到这一点),并且不到30秒.

  • CAF是一种容器格式; 您无法仅从扩展中知道给定的CAF包含正确类型的数据.在Quicktime Player中打开声音,点击Cmd-I打开Movie Inspector,然后检查格式.我躺着的声音说它的格式是"线性PCM,16位小端符号整数"等; 如果你的声音文件显示的不是那个,那可能就是问题了. (2认同)

Mas*_*ang 16

我还尝试使用以下命令将mp3转换为caf:

afconvert clockalarm.mp3 clockalarm.caf -d ima4 -f caff -v
Run Code Online (Sandbox Code Playgroud)

这里有一个教训:我花了几个小时来挣扎当地通知的声音.试图转换为不同的比特率和格式.但最后我发现iOS 6.1仿真器一定存在缺陷.我将代码部署到设备,它运行良好,但在模拟器上,没有任何声音.

  • mp3文件正常工作,无需将其转换为caf文件格式 (2认同)

小智 8

我遇到了所有这些问题(感谢答案)并且能够通过从.wav转换为.caf(sans 6.1模拟器)来解决问题.我需要的最后一点是确保.caf在我的应用程序包中.确认/纠正这个......

右键单击"Project Navigator"中的文件,选择"Show File Inspector"并确保文件在"Target Membership"区域中的项目旁边有一个复选标记.在我的情况下,"LocalNotificationExampleTests"是唯一检查的项目.检查"LocalNotificationExample"修复了设备上缺少声音的问题.