如何更改播放本地通知的声音?我使用下面的代码播放默认声音:
notif.soundName = UILocalNotificationDefaultSoundName;
所以,我在下面尝试了这个,但它没有用。我该怎么办?谢谢你的帮助!
notif.soundName = @"sound.caf";
答案 0 :(得分:37)
您可以使用以下方式从wav和mp3转换:
afconvert -f caff -d LEI16@44100 -c 1 in.wav out.caf
答案 1 :(得分:29)
那应该有用。确保声音实际上在您的应用程序包中,格式正确(线性PCM或IMA4 - 几乎任何解释如何转换iOS声音的地方都会告诉您如何操作),并且不到30秒。
答案 2 :(得分:16)
我还尝试使用以下命令将mp3转换为caf:
afconvert clockalarm.mp3 clockalarm.caf -d ima4 -f caff -v
这里有一个教训:我花了几个小时来挣扎当地通知的声音。试图转换为不同的比特率和格式。但最后我发现iOS 6.1仿真器一定存在缺陷。我将代码部署到设备,它运行良好,但在模拟器上,没有任何声音。
答案 3 :(得分:8)
我遇到了所有这些问题(感谢答案)并且能够通过从.wav转换为.caf(sans 6.1模拟器)来解决问题。我需要的最后一点是确保.caf在我的应用程序包中。确认/纠正这个......
右键单击“Project Navigator”中的文件,选择“Show File Inspector”并确保文件在“Target Membership”区域中的项目旁边有一个复选标记。在我的情况下,“LocalNotificationExampleTests”是唯一检查的项目。检查“LocalNotificationExample”修复了设备上的声音不足。
答案 4 :(得分:2)
对于 Swift 3 ,使用UNNotificationSound.init作为通知调度功能中的notif对象。
这是 Swift 3 示例:
func scheduleNotifications(inSeconds: TimeInterval, completion: @escaping (_ Success: Bool) ->()){
...
notif.sound = UNNotificationSound.init(named: "CustomSound.mp3")
...
}
最后的说明,根据Apple的说法:“声音文件必须包含在应用程序包中或应用程序数据容器的Library / Sounds文件夹中。如果文件存在于两个位置,那么〜/ Library / Sounds中的文件将首选。“
答案 5 :(得分:0)
Swift 5.1
如何更改为本地通知播放的声音。我使用下面的代码播放默认声音:
content.sound = UNNotificationSound.init(named: UNNotificationSoundName(rawValue: "Sound_Name.mp3"))