2011-08-24 7 views
30

ローカル通知用に再生するサウンドをどのように変更しますか?ローカル通知用のカスタムサウンドを選択

notif.soundName = UILocalNotificationDefaultSoundName; 

以下のコードを使用して、これを試してみましたが、うまくいきませんでした。私は何をすべきか?ご協力いただきありがとうございます!

notif.soundName = @"sound.caf"; 
+0

これはうまくいくようです。あなたのアプリケーションバンドルに 'sound.caf'はありますか? – jtbandes

+0

はい、フォーマットは間違いありませんか?私は名前のような何かをする必要はありません:入り口:カフェ、またはそれに似ていますか? –

+0

はい、ドキュメントには拡張機能だけが含まれていると記載されています。 – jtbandes

答えて

29

これでうまくいくはずです。サウンドが実際にあなたのアプリのバンドルに入っていることを確認してください(リニアPCMまたはIMA4 - どこでも、iOS用のサウンドを変換する方法が説明されています)、30秒未満です。

+0

それをドラッグしてXcodeにドロップします.30秒未満ですが、CAFは動作しますか? –

+2

CAFはコンテナ形式です。あるCAFに正しい種類のデータが含まれていることを拡張機能から知ることはできません。 Quicktime Playerでサウンドを開き、Cmd-Iを押してムービーインスペクタを開き、フォーマットを確認します。私が周りに横たわっていた音は、そのフォーマットが「リニアPCM、16ビットのリトルエンディアン符号付き整数」などと言った。あなたのサウンドファイルがそれ以外のものを表示していれば、それはおそらく問題です。 –

+0

代わりにIMA4形式を使用して動作させました。ご協力いただきありがとうございます! –

37

あなたが使用してwavファイルとmp3から変換することができます:ここ

afconvert clockalarm.mp3 clockalarm.caf -d ima4 -f caff -v 

1回のレッスン:私はいくつかの時間を費やし

afconvert -f caff -d [email protected] -c 1 in.wav out.caf 
+0

ここで私はそのコマンドを入力します。また、iosコードで変換することも可能です。 – srinadh

+0

afconvertはシェルアプリケーションから使用できるコマンドラインプログラムです。あなたのmacosx –

15

私はまた、以下のコマンドを使用してCAFするmp3に変換しようとしました地元の通知の音と闘う。別のビットレートとフォーマットで変換しようとしました。しかし、ついに、iOS 6.1エミュレータに問題があることが判明しました。私はデバイスにコードをデプロイしましたが、うまくいきますが、エミュレータでは音がありません。

+0

ありがとう、あなたのコメントのためにたくさん。ここで学んだレッスンで、最新の情報を追加するようにコンテンツを更新しました。 –

+0

あなたが解決策を見つけられたらうれしいです:-) – kleopatra

+2

mp3ファイルが動作していますが、これをcafファイル形式に変換する必要はありません –

8

私はこれらの問題(回答ありがとう)に遭遇し、.wavから.caf(sans 6.1シミュレータ)に変換することで問題を解決することができました。私が必要とした最後のビットは、.cafが私のアプリのバンドルに入っていることを確認することでした。これを確認/修正するには...

"Project Navigator"でファイルを右クリックして "Show File Inspector"を選択し、 "Target Membership"領域にプロジェクトの横にチェックマークが付いていることを確認します。私の場合、 "LocalNotificationExampleTests"がチェックされた唯一の項目でした。 "LocalNotificationExample"を確認すると、デバイスのサウンドが不足していました。

1

Swift 3通知スケジューリング機能のnotifオブジェクトにUNNotificationSound.initを使用します。 Appleによれば、

func scheduleNotifications(inSeconds: TimeInterval, completion: @escaping (_ Success: Bool) ->()){ 
     ... 
     notif.sound = UNNotificationSound.init(named: "CustomSound.mp3") 
     ... 
} 

最後の注意:

はここスウィフト3例だ「サウンドファイルは、/ appのデータコンテナのフォルダをサウンドアプリのバンドルやライブラリに含まれている必要があります。ファイルが両方の場所に存在する場合、〜/ライブラリ/サウンドのファイルが優先されます。

関連する問題