如何更改播放本地通知的聲音?我使用下面的代碼播放默認聲音:爲本地通知選擇自定義聲音
notif.soundName = UILocalNotificationDefaultSoundName;
因此,我在下面嘗試了這一點,但它沒有奏效。我該怎麼辦?謝謝你的幫助!
notif.soundName = @"sound.caf";
如何更改播放本地通知的聲音?我使用下面的代碼播放默認聲音:爲本地通知選擇自定義聲音
notif.soundName = UILocalNotificationDefaultSoundName;
因此,我在下面嘗試了這一點,但它沒有奏效。我該怎麼辦?謝謝你的幫助!
notif.soundName = @"sound.caf";
這應該有效。確保聲音實際上在你的應用程序包中,格式正確(線性PCM或IMA4-幾乎任何地方,說明如何轉換iOS的聲音會告訴你如何做到這一點),並且不到30秒。
將它拖放到Xcode中,CAF將在30秒內運行? –
CAF是一種容器格式;你不能從擴展中知道給定的CAF包含正確的數據類型。在Quicktime Player中打開聲音,按Cmd-I打開Movie Inspector,然後檢查格式。我說的格式是「線性PCM,16位小尾數有符號整數」等。如果您的聲音文件顯示了其他內容,那可能是問題所在。 –
我改爲使用IMA4格式並使其工作。謝謝你的幫助! –
可以使用從WAV和MP3轉換:
afconvert -f caff -d [email protected] -c 1 in.wav out.caf
其中我將輸入該命令並且還可以在ios代碼中進行轉換 – srinadh
afconvert是一個命令行程序,可以從shell應用程序中使用您的macosx –
我也試圖轉換MP3使用以下命令CAF:
afconvert clockalarm.mp3 clockalarm.caf -d ima4 -f caff -v
一個教訓在這裏:我花了幾個小時到與當地通知的聲音鬥爭。試圖用不同的比特率和格式進行轉換。但最後我發現iOS 6.1仿真器一定有缺陷。我將代碼部署到設備上,它運行良好,但在仿真器上,沒有任何聲音。
非常感謝您的評論。我更新了內容,包括我的最新信息,我在這裏學到的經驗教訓。 –
很高興你發現了一個解決方案:-) – kleopatra
mp3文件正在工作,無需將其轉換成caf文件格式 –
我遇到了所有這些問題(感謝您的答案),並能夠通過從.wav轉換爲.caf(sans 6.1模擬器)來解決問題。我需要的最後一點是確保.caf位於我的應用程序包中。確認/更正此...
右鍵單擊「項目導航器」中的文件,選擇「顯示文件檢查器」,並確保文件在「目標成員」區域中的項目旁邊有複選標記。在我的情況下,「LocalNotificationExampleTests」是唯一檢查的項目。檢查「LocalNotificationExample」可以修復設備上缺乏聲音的情況。
對於Swift 3使用UNNotificationSound.init作爲通知調度函數中的notif對象。
這裏有一個斯威夫特3例如:
func scheduleNotifications(inSeconds: TimeInterval, completion: @escaping (_ Success: Bool) ->()){
...
notif.sound = UNNotificationSound.init(named: "CustomSound.mp3")
...
}
最後一點,據蘋果稱:「這聲音文件必須包含在應用程序的包或庫中/語音應用程序的數據容器的文件夾中。如果文件存在於兩個位置,那麼〜/ Library/Sounds中的文件將是首選。「
看起來它應該工作。你的應用程序包中有'sound.caf'嗎? – jtbandes
是的,格式化是否正確?我不需要諸如名稱:sound withEnding:caf,或類似的東西? –
是的,文檔說只包含擴展名。 – jtbandes