2016-05-31 386 views
11

如何使用自定義聲音進行推送通知?更改推送通知聲音

根據我的研究和閱讀,我發現負載應該有應用程序包中或應用程序數據容器的Library/Sounds文件夾中的文件名。

如何把文件放在那裏?

+0

請點擊此鏈接:http://stackoverflow.com/questions/25478395/apns-notification-sound-for-ios –

+0

FWIW任何聲音(系統聲音或您自己製作的聲音)* default *以外的任何聲音都被視爲自定義聲音並且必須手動添加到AppBundle。 – Honey

回答

20

按照Apple documentation爲您的應用程序準備自定義聲音文件。

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

自定義的警報聲音由iOS系統的聲音設施發揮,所以 他們必須在下面的音頻數據格式之一:

線性PCM MA4(IMA/ADPCM)μLawALAW您可以打包音頻數據在 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中打開並從Movie菜單中選擇Show Movie Inspector 來檢查聲音以確定其數據格式 。

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

一旦你建立了這個文件,最簡單的方法就是把它放在應用程序包中。

當您發送推送通知時,只需在JSON負載中添加文件的名稱即可。例如:

{ 
    "aps" : { 
     "alert" : "You got your emails.", 
     "badge" : 9, 
     "sound" : "bingbong.aiff" 
    } 
} 

那就是它!你不必在應用代碼中做任何特殊的事情。

編輯:
請把該文件的項目包內(即項目的層次結構內),並有Copy items if needed選項選中,同時拖放。黑色部分有項目名稱。

enter code here

+0

如何執行此操作: – user5068763

+0

將聲音文件作爲應用程序包的非本地化資源或數據容器的庫/聲音文件夾添加到項目中。 – user5068763

+0

只需將文件拖放到項目中即可。出現提示時,確保選擇了「如果需要複製項目」選項。 –

14

服務器管理員會送你的聲音名稱的通知有效載荷。 有效載荷將這個樣子

{ 
    aps =  
    { 
     alert = "notification message"; 
     sound = "example.caf"; 
    }; 
} 

您需要的聲音文件添加到應用程序包。格式應該是.caf。要將聲音文件轉換爲.caf,請嘗試在終端中運行此命令。

afconvert -f caff -d [email protected] -c 1 sound.aiff soundFileName.caf

文件被保存在桌面上。現在將您的文件拖放到您的項目中。然後在目標中選擇構建階段。

檢查您的聲音文件是否存在於「複製束資源」下。如果沒有,請點擊+按鈕添加您的聲音文件。有效負載中的聲音名稱應與您的聲音文件名相同。

現在你已經準備好播放自定義通知聲音了。

+1

您是對的! - 「檢查您的聲音文件是否存在於」複製束「資源'。如果沒有,點擊+按鈕添加聲音文件「。 Tha nks –

+0

這對我有用。感謝您的詳細答案:) –

+0

我已經在iOS 10.3上測試過,聲音與aiff一起工作,沒有將它轉換爲caf。 –