2015-10-13 219 views
2

我需要自定義推送通知聲音。我不想創建幷包含到Bundle。我需要像whatsapp通知聲音一樣實施,或者請給出Apple提供的聲音列表(如默認聲音)。任何幫助將不勝感激。iOS推送通知自定義聲音

謝謝

+2

[列出可用的聲音爲iOS推送通知(可能的重複http://stackoverflow.com/questions/10709707/list-of-可用聲音爲ios推送通知) –

+1

這不是正確的答案爲我的問題。我正在看caf的一些示例文件。謝謝。 – Thangavel

+0

[如何在用戶獲取推送通知時播放自定義聲音文件的可能的重複?](http://stackoverflow.com/questions/21179630/how-to-play-custom-sound-file-when-user-get-push - 通知) –

回答

0

在你的包中添加一個名爲「pushSound.caf」的聲音文件。

//寫你的有效載荷這樣

{ 
aps = 
{ 
    alert = "message"; 
    sound = "pushSound.caf";//this file will have to your bundle 
    }; 
} 
+0

他寫道,他不想包括捆綁。這不是關於服務器端,而是關於在獲取它時自定義通知,JSON中的'sound'參數應該是'default',並且定製應該在應用程序委託中。我還沒有找到如何覆蓋收到的默認iOS系統消息。 – XcodeNOOB

0

準備自定義提示音就會響起

對於iOS的遠程通知,您可以指定自定義聲音的iOS播放時,它呈現出本地或遠程通知一個應用程序。聲音文件可以位於客戶端應用程序的主包中,也可以位於應用程序數據容器的Library/Sounds文件夾中。

定製警報聲音由IOS系統聲設施發揮,因此它們必須在以下的音頻數據格式之一:

  • 線性PCM
  • MA4(IMA/ADPCM)
  • μLaw
  • ALAW

您可以在AIFF,WAV或CAF文件包中的音頻數據。然後,在Xcode中,將聲音文件作爲應用程序包的非本地化資源或數據容器的Library/Sounds文件夾添加到項目中。

可以使用afconvert工具轉換的聲音。例如,16位線性PCM系統聲音Submarine.aiff轉換爲IMA4音頻的CAF文件,在終端應用程序中使用以下命令:

afconvert /System/Library/Sounds/Submarine.aiff ~/Desktop/sub.caf -d ima4 -f caff -v 

您可以檢查一個聲音,以確定其數據格式通過在QuickTime Player中打開它並從「電影」菜單中選擇「顯示電影檢查器」。

播放時自定義聲音必須低於30秒。如果自定義聲音超過該限制,則會播放默認的系統聲音。

2

挖這個問題超過3周,寫來回蘋果後,這是唯一的解決辦法 改變有效載荷爲類似

sound = "custom" 

現在你需要顯示您的所有系統中的聲音表格視圖(如果你不知道該怎麼做,請看github)。 一旦用戶標記了他的聲音通知,您需要將該文件複製到庫/聲音併爲其提供自定義名稱(或者有效載荷中的確切名稱)。 那樣你永遠不會改變服務器端的代碼,並保持它的自定義,另一方面,你只需用用戶選擇的新聲音覆蓋自定義文件。

*邊注:在9.2.1版本有這導致通知無法按照蘋果的下一個版本9.3的第二次合作,或根本,它應該是固定的錯誤!

在呼吸中我希望解決方案能夠像Android那樣覆蓋有效載荷,Apple會在開發人員面前推送更多的推送通知。

+1

是的,你是對的。這是最終我用自定義聲音實現的方式。 – Thangavel