私は再生したい音の束を持っています。今はAVAudioPlayerを使用しています。ユーザーがボタンをクリックすると、新しいサウンドが開始されます。 AVAudioPlayerのurlプロパティは読み取り専用です。私はむしろ、新しいサウンドを鳴らすたびにオブジェクトを解放して再割り当てする必要はありません。これを行う最善の方法は何でしょうか?私は使用する必要がある別のクラスがありますか?iphoneで一度に1つずつ異なるサウンドを再生する最も良い方法は?
答えて
サウンドを再生する最も簡単な方法は、Playing UI Sound Effects or Invoking Vibration Using System Sound Servicesです。基本的にはAudioServicesCreateSystemSoundID()とAudioServicesPlaySystemSound()を呼び出します。システムサウンドを作成することは、比較的高価であり、それはAudioServicesDisposeSystemSoundID(に配置されていますとき、再生は停止します)とにかく、あなたは実際にそれらをキャッシュしたい:
- アプリの起動(または多分サウンドが再生されて1回目)でそれらを作成します。サウンドファイル名でキー入力されたNSDictionaryにそれらを保持し、NSValueにサウンドIDを格納することができます。
- 気になる場合は、アプリが終了したとき、バックグラウンドになっているとき、またはメモリ警告時に処分することができます。
"システムサウンド"でサポートされているサウンドフォーマットはほとんどありません。リンゴはIMA4(afconvert -f caff -d ima4 input.file output.caf
と、場合によっては-c 1
)をお勧めします。
これは、一度に1つのサウンドを気にしない限り、短いサウンドを再生するのに非常にぴったりです(既に再生中のサウンドを再生すると再生を再開します)。私はそれがカーネルによって直接演奏されているのではないかと推測しています(あなたのアプリケーションが終了したときに再生を継続させるフラグを設定することができます)。 はAVAudioPlayerが再生するサウンドとミックスすることがあります。
これに私の自発的な反応は、hm ...私はAppleがちょうど良いものを達成するために失敗したと思う 'シンプルなものは単純で複雑なものが可能でなければならない'べきである。しかし、たぶん普遍的なwavebuffer +ミキサーのソリューションがありますか? –
これは、私が難しい方法を見ていないのが一番簡単な方法ですか? – Marty
@Henrik Erlandsson確かに、オーディオは概念的にシンプルですが、高性能オーディオAPIは、処理するハードウェアコーデック。カーネルにPCMや単に圧縮されたオーディオを再生するように頼むことは、完璧に賢明であり、オーバーヘッドは最小限に抑えられるはずですが、カーネル内のMP3デコーダは望ましくありません。 –
- 1. AVAudioplayerで一度に1つのサウンドを再生する方法
- 2. AudioServicesPlaySystemSoundで一度に1つのサウンドを再生する
- 3. オーディオファイルを1つずつ再生する
- 4. 一度に1文字ずつフェードイン/エクスポーズする方法は?
- 5. Javaでラジオストリーム(shoutcast)を再生する最も良い方法は?
- 6. Androidで再生する1回につき1サウンド
- 7. UIScrollView:一度に1ページずつスクロールする方法
- 8. iOSゲームでサウンドを再生する最も便利な方法は?
- 9. 一度に1つのSWFファイルのみを再生する
- 10. クリップを1つずつリスト/再生するフォルダにアクセスする
- 11. 2つのサウンドを同時に再生する方法
- 12. 一度に2つのサウンドを再生するにはどうすればよいですか?
- 13. <audio>ブロックをポップとクリックしないで1つずつ再生する方法は?
- 14. 異なるスピーカーでサウンドを再生するには?
- 15. iPhoneサウンド:再生中にオーディオファイルの再生速度を調整する
- 16. 異なる幅と高さでも1つずつ異なるタイルを塗りつぶします
- 17. 一度に1つずつフォルダ内のすべてのファイルを1つずつ変換するバッチスクリプトファイル
- 18. 解決方法解決方法2つのViewModelをascxページで一度に1つずつ渡します。
- 19. 派生クラスがC++で異なるデータ型を運ぶ最も良い方法
- 20. 2つのリストを追加する最も良い方法は?
- 21. iPhoneゲームでサウンドを再生する - スローダウン
- 22. HTML5とJavascriptを使用してサウンドを再生する最良の方法
- 23. 一度に1つのMediaPlayerインスタンスを再生
- 24. Jqueryで一度に1つのクラスをアクティブに保つ方法
- 25. iPhoneにゲームデータを保存する最も良い方法は?
- 26. IPhoneでサウンド再生通知
- 27. Rails 3ログインステータスに基づいて2つの異なるホームページを表示する最も良い方法
- 28. iPhone SDK - 一度に1つしかドラッグしない
- 29. 1行で簡単にインスタンス化できるプライベートメンバーを持つクラスを定義する最も良い方法は?
- 30. MongoDBで最も頻繁に発生する値を見つける最良の方法は何ですか?
私はAVAudioPlayersの配列を各サウンドに1つずつ作成することを考えていますが、それは過度のようです。 – Marty