2012年10月07日

サウンド再生の実装

今週はBGMとSEの再生処理の実装をしてみました。

当初は自分で作曲までしてみようと思い少し作曲ソフトやらを調べてみたのですがダメですね。さっぱりわかりません。
音楽知識ゼロの状態から一朝一夕で作曲ができるようになれるわけがないということですね。当たり前ですが。

というわけで無料で使える音楽素材を探してみました。

ユウラボ8bitサウンド工房

傾撃にはこちらのサウンドを使用させていただくことにしました。

少し話は変わりますが素材つながりということで、
フォントには美咲フォントを使用しています。

8×8 ドット日本語フォント「美咲フォント」

この辺の使用している素材についてはアプリ内にも標記する予定ですが、とりあえずブログにも載せておきます。

話を戻してサウンドの話。
傾撃はライブラリにCocos2dを使用しているのでサウンド再生はCocos DenshionのSimpleAudioEngineを使用しています。

基本的にはBGMを鳴らすだけならば
[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"bgm.mp3" loop:YES];

と、これだけでできるわけですが3点ほど引っかかったところがあったので以下覚え書きです。

@アプリ起動時に他のアプリがバックグラウンド再生をしているとBGMが鳴らせなくなる。

SimpleAudioEngineはデフォルトではバックグラウンドで音楽とかが鳴っている場合にはそっちを優先するようになっているようです。
これ自体はそういう仕様ということで問題はないのですが、なぜかバックグラウンドの音楽を止めた後もBGMが鳴らせなくなってしまいました。

あまり仕組みはよくわかっていないのですが、多分こんな感じの処理になっているものと思います。
 1.初回起動時にバックグラウンド再生が行われているかチェック
 2.バックグラウンド再生が行われている場合はBGMは鳴らさないモードに鳴る
 3.チェックは初回起動時のみなので途中でバックグラウンド再生が止まってもBGMはもう鳴らない

逆に一度BGMを鳴らしてしまうと、バックグラウンド再生を途中から開始してもアプリのBGM再生の方を優先するようになるみたいです。

あまり困ることはなさそうですが、再生を停止させてもアプリ自体を終了させないとバックグラウンド再生をしたままになるアプリもあるみたいなので、というか私が普段使っているDownCastというPodcast再生用のアプリのことですが、いちいち都度アプリを終了させるというのも面倒な話です。

調べてみたところ、[SimpleAudioEngine shareEngine]の呼び出し前に[CDAudioManager configure:]を呼び出すことでこの辺のモード設定を行うことができるようです。
具体的には引数にkAMM_FxPlusMusicを渡してやるとバックグラウンド再生しているものを止めて、自分のBGMを優先して鳴らすようになるみたいです。

Aアプリがバックグラウンドに移行するタイミングでBGMを一時停止できない

傾撃ではバックグラウンドに移行したタイミングでプレイ中だった場合にはポーズ状態にするようにしています。また、ポーズ中はBGMを止める仕様としています。

なので[AppDelegate applicationWillResignActive:]で[SimpleAudioEngine pauseBackgroundMusic]を呼ぶようにしてみたのですが、これがなぜか動いてくれません。原因は不明です。とりあえずpauseBackgroundMusicの代わりにstopBackgroundMusicを使用すると一応BGMが止まるようにはなったのですが、これも問題があります。

ホームボタンを押したりしてアプリを終了させるとき、BGMはフェードアウトして消えていくのですが、stopBackgroundMusicが走るのはこのフェードアウトが完了した後になるようで、フェードアウトしている途中で再度アプリをアクティブにさせると一瞬BGMが再生されてから停止が行われるようになってしまいます。

こちらについては解決法が見つからなかったので断念しました。まあ、こんなことする人もいないでしょ。

Bサウンドファイルを変更してビルドしても実機の方に反映されない。

以前はOrganizerのDerived DataをDeleteしてビルドしなおしていたのですが、なぜかDeleteが選択できなくなっています。とりあえずプロジェクトのCleanをしてからBuildをすると上手くいっているような気がします。正しいやり方なのかどうかはよくわかりません。
ラベル:傾撃 cocos2d
posted by かねだ at 19:55| Comment(3) | 開発記録 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
christian ルブタン
Posted by ダウン 値段 at 2013年08月10日 21:51
寒い冬、軽くて暖かいモンクレールのダウンhttp://www.adnairmail.com/ジャケットは暖かい王は当然である。
Posted by モンクレール 2014 秋冬 at 2014年01月04日 15:32
http://www.jebbica.com/ 激安XXIO ゼクシオMP700アイアン5-9PASを販売している通販サイトです。
Posted by MP700アイアン at 2014年03月13日 17:09
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。