たけぞうBLOG

iOS,XCode,Cameraなど

iOSアプリ開発

[iOS開発]Push通知をカスタム警告音に変更する手順

投稿日:8月 30, 2014 更新日:

やること

既存のiOSプロジェクトの通知用にカスタム警告音を作成し、実際に動作するところまでの手順を説明します。
  1. iOSアプリのPush通知音の作成
  2. 既存プロジェクトに通知音ファイル設置
  3. コードの修正

1.iOSアプリのPush通知音の作成

まず、カスタム警告音で使用できるのは以下のオーディオフォーマットになります。
  • リニアPCM
  • MA4(IMA/ADPCM)
  • μLaw
  • aLaw
詳細はAppleの「LocalおよびPush Notificationプログラミングガイド」を読んでください。

大まかな作業の流れ

  • GarageBandで音ネタを作成
  • afconvertでaiffからcafフォーマットに変換

GarageBandで音ネタを作成

ここでは通知音の作成にはGarageBandを使います。 \"gb01\"   ここでの注意点は音の長さを30秒以内にすることです。音を作成したらメニューの「共有」>「曲をディスクに書き出し」で下記のような設定でファイルを書き出します。 \"gb02\" ここまでで、aiffフォーマットによる音源作成が完了です。

afconvertでaiffからcafフォーマットに変換

次にaiffフォーマットからcafフォーマットに変換します。 Terminalを起動して、下記のように入力します。 [plain] <pre>afconvert aiffファイルのパス 書き出したいファイルのパス -d ima4 -f caff [/plain] 例えばこんな感じになります。 [plain] %afconvert ~/Desktop/source.aiff ~/Desktop/target.caf -d ima4 -f caff [/plain] cafファイルが無事作成できたら30秒以内になっているか確認してください。 また、ファイルサイズが大きすぎないかも注意しておくと良いです。 参考までに、実際に作成したcafフォーマットのファイルを公開しておきます。 https://drive.google.com/file/d/0B0-kSMDLGoIzMnBVVUdZdHZEcDg/edit?usp=sharing このようにしてcafフォーマットのカスタム警告音が作成できます。

既存プロジェクトに通知音ファイル設置

次に、cafファイルをXcodeに登録します。cafファイルをXcodeプロジェクトのSupporting Filesディレクトリ等にドラッグ&ドロップします。 そして、下記のような設定でFinishボタンを押して下さい。 \"xc01\" これでcafファイルがあなたのプロジェクトに登録されました。あとはソースコードで通知の際に呼び出されるようにすればOKです。

コードの修正

ローカル通知の場合

UILocalNotificationインスタンスのsoundNameにファイル名を設定します。 [plain] localNotif.soundName = @"test.caf"; [/plain] 今回の例ではファイルパスは考慮せず、ファイル名だけを指定するようにしてください。絶対パスなどで設定してもうまくいかないと思います。

リモート通知の場合

APNsから下記のようなペイロードを受信できるようにします。 [plain] { "aps" : { "alert" : "Push Test" "sound" : "test.caf" } [/plain] あとは、実機にアプリをインストールして動作確認してください。 iPhone等がミュート状態になっていないことをお忘れなく。  

-iOSアプリ開発
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

聴力チェック サポートページ

視力チェック10万ダウンロード突破記念!    期間限定無料セール開催中!!  (数量に限りがございますのでご了承ください)

XCode4とXCode5DP5のEmpty Projectでの差分を調べてみました

XCode4とXCode5DP5のEmpty Projectのファイル構成や設定の違いを調べてみました。なお、XCode5はDP5を使用しているため、正式版とは差があるかもしれないのでご了承ください。

Xcode4の環境設定

複数ファイルをタブ表示にする 環境設定のGeneral>Double Click NavigationをUses Separate Tabに変更すると、ファイルをダブルクリックしたときにタブで表 …

【iOS】Audio Queue

Audio Queue とは? 音声の記録、再生を行うために使用するソフトウェアオブジェクトのこと AudioQueueRefで表現され、AudioQueue.hに宣言されている 全コーデックを取り扱 …
no image

snippet周りの設定

iPhoneアプリ開発でObjective-Cのスニペットを活用すべく、環境を整えました。

プロフィール


1972年神奈川県生まれ。ソフトウェアエンジニアとして生きています。最近はクライアントアプリからサーバーサイドまで幅広くやってます。