cocos2d-xオーディオ再生

Pocket

くまのがっこう神経衰弱バトル

cocos2d-x 3.5ではAudioEngineを使えますが、くまのがっこう神経衰弱バトルではSimpleAudioEngineを使いました。全てのケースにあてはまるかわかりませんが苦労した点をご紹介します。

バックグラウンドに落としてからフォアグラウンドに復帰したときに「BGMが再生されない」「効果音が一切再生されなくなる」といった不具合が100回に1回くらいの割合で発生しました。iOSでもAndroidでも症状が確認されました。

ネットを調べてもあまり情報がありませんでしたが数人ほど同じ症状で苦しんでいる方がいて、一旦オーディオの処理を完全に停止して再開すれば症状が出なくなるとのことだったので以下の実装を行ったところ症状は出なくなりました。

AppDelegate.cpp

HelloWorldScene.h

HelloWorldScene.cpp

くまのがっこう神経衰弱バトルを遊んでいただくとわかるのですが、バックグラウンドからフォアグラウンドに復帰したときにBGMが停止してまた最初から再生されるのでちょっとカッコ悪いです。Androidはそんなに気になりませんが、iOSはよくわかります。

もうひとつ、効果音をIDを指定して停止しているところで100回に1回くらいの割合で効果音が停止しないという症状が出ました。いろいろ調べましたが全く原因がわからなかったので、効果音の停止をstopEffect(id)からstopAllEffects()へ変更したところその症状は出なくなりました。効果音が全て停止するので停止したくない効果音と重なっているときは使えない方法です。

次のゲームではAudioEngineやネイティブでの実装を試してまたここで結果をご紹介したいと思います。

Pocket

投稿者: Kei Osumi

GAME SHONENのプログラマー

コメントを残す

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