たけぞう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

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

関連記事

iPhoneアプリ開発でのキーチェーンアクセス設定

iPhoneアプリ開発でハマりやすいキーチェーンアクセスのチェックポイント

Xcode5とXcode4のPreferenceの違い

XCode4からXCode5にアップデートされるにあたり、Preferenceでの設定項目がどのように変更されているのか調べました。

【iOS】Core Audio

リニアPCMについて 1チャンネル分を表す単一の数値をサンプルと呼ぶ 時間的に同じ位置にあるサンプルの集まりをフレームと呼ぶ 1つまたは複数の連続するフレームの集まりをパケットと呼ぶ

Appleから”Special Opportunity 
for an Expedited Apple Watch Order”メールが届きました

今朝Appleから下記のようなメールが届きました。

【iOS】Audio Queue

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

プロフィール


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