BGMを鳴らしながら効果音再生するときの落とし穴

「BGMを鳴らしながら効果音再生するときの落とし穴」の編集履歴(バックアップ)一覧はこちら

BGMを鳴らしながら効果音再生するときの落とし穴」(2014/02/10 (月) 05:27:13) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

通常、長い音はAVFoundation.frameworkのAVAudioPlayerで、短い音はAudioToolbox.frameworkのSoundIDを使って再生します。 しかしAudioToolboxには以下の様な問題があります。 -マナーモードにすると鳴らない(イヤホンをつけて聴くとよくわかります。) -AirPlayでアプリのシミュレーションをしている状態で再生すると音が鳴らない -AVAudioPlayerでBGM再生中に音を鳴らすと、BGMがフェードイン/アウトされてしまう ということで、AudioToolboxはたしかに便利ではありますが、&u(){ゲーム開発には向いていません。} 各種人気ゲームを調べたところ、AudioToolboxを使った音声再生は一つも見つかりませんでした。 ツールアプリで言えば、Twitterの更新時の「パッ」という音は短い音なのでAudioToolboxかと思いきや、きちんとマナーモードでもAirPlayでも再生されたので、恐らくAVAudioPlayerでしょう。しかし、Facebookメッセンジャーの更新時の「チュイッ」という音は完全にAudioToolboxの条件と同じでしたので、AudioToolboxを使用していることが予測されます。 |アプリ名|音|使用フレームワーク| |Twitter|引っ張って更新するときの音|AVFoundation| |Facebookメッセンジャー|引っ張って更新するときの音|AudioToolbox| ということは、まず第一の前提として、ゲームアプリを作る時は「AudioToolboxは使わない」ということになります。 さて、ゲームアプリ開発においてAVAudioPlayerでの音声再生が優位であることが決まりました。次に、BGMと効果音の同時再生についてです。 音声ファイルは、馴染みのある.mp3形式をよく使うのですが、同時再生には「.caf」形式が推奨されています。mp3のファイルは再生に負荷がかかると言われており、iPhoneでは動作にもたつきの出る可能性があります。そのため、ターミナルを使ってmp3ファイルをcaf形式に変換し、それをアプリ内で使用してあげるとよいでしょう。 【ターミナルでのコマンド】 デスクトップにSoundというフォルダを置いてその中にmp3ファイルを保存していた場合 ①「-cd」コマンドで移動 Masuhara:~ User$ cd /Users/User/Desktop/Sound/ ②「afconvert」コマンドでmp3をcafに変換し、同じフォルダ内に保存 Masuhara:Sound User$ afconvert -f caff -d ima4 -d LEI16@22050 hoge.mp3 hoge.caf

表示オプション

横に並べて表示:
変化行の前後のみ表示: