プッシュ通知にカスタムサウンドを使用するにはどうすればよいですか?
私の調査と読書によると、ペイロードには、アプリのバンドルまたはアプリのデータコンテナのLibrary/Soundsフォルダーにあるファイル名が必要であることがわかりました。
そこにファイルを置く方法は?
Appleドキュメント に従って、アプリのカスタムサウンドファイルを準備します。
IOSのリモート通知では、iOSがアプリのローカル通知またはリモート通知を表示するときに再生するカスタムサウンドを指定できます。サウンドファイルは、クライアントアプリのメインバンドル、またはアプリのデータコンテナーのLibrary/Soundsフォルダーにあります。
カスタムアラートサウンドは、iOSシステムのサウンド機能によって再生されるため、次のいずれかのオーディオデータ形式である必要があります。
リニアPCM MA4(IMA/ADPCM)µLaw aLawオーディオデータをaiff、wav、またはcafファイルにパッケージ化できます。次に、Xcodeで、サウンドファイルをアプリバンドルのローカライズされていないリソースとしてプロジェクトに追加するか、データコンテナーのLibrary/Soundsフォルダーに追加します。
Afconvertツールを使用して、サウンドを変換できます。たとえば、16ビットのリニアPCMシステムサウンドSubmarine.aiffをCAFファイルでIMA4オーディオに変換するには、ターミナルアプリで次のコマンドを使用します。
afconvert /System/Library/Sounds/Submarine.aiff〜/ Desktop/sub.caf -d ima4 -f caff -v QuickTime Playerで開き、ムービーから[ムービーインスペクターを表示]を選択すると、サウンドを調べてデータ形式を決定できます。メニュー。
カスタムサウンドは、再生時に30秒未満でなければなりません。カスタムサウンドがその制限を超えている場合、代わりにデフォルトのシステムサウンドが再生されます。
ファイルを作成したら、それをアプリのバンドルに入れるのが最も簡単な方法です。
プッシュ通知を送信するときに、JSONペイロードにファイルの名前を追加するだけです。例:
{
"aps" : {
"alert" : "You got your emails.",
"badge" : 9,
"sound" : "bingbong.aiff"
}
}
それでおしまい!アプリのコードで特別なことをする必要はありません。
編集:
プロジェクトバンドル内(つまり、プロジェクトの階層内)にファイルを配置し、Copy items if needed
ドラッグアンドドロップ中にオプションが選択されました。黒く塗りつぶされた部分にはプロジェクト名があります。
サーバー管理者から通知ペイロードでサウンド名が送信されます。ペイロードは次のようになります
{
aps =
{
alert = "notification message";
sound = "example.caf";
};
}
アプリバンドルにサウンドファイルを追加する必要があります。そして、フォーマットは.cafでなければなりません。サウンドファイルを.cafに変換するには、ターミナルでこのコマンドを実行してください。
afconvert -f caff -d aacl@22050 -c 1 sound.aiff soundFileName.caf
ファイルはデスクトップに保存されます。ファイルをプロジェクトにドラッグアンドドロップします。次に、ターゲットのビルドフェーズを選択します。
[バンドルリソースのコピー]の下にサウンドファイルが存在するかどうかを確認します。そうでない場合は、[+]ボタンをクリックしてサウンドファイルを追加します。ペイロード内のサウンドの名前は、サウンドファイル名と同じである必要があります。
これで、カスタム通知音を再生するように設定されました。