ブログBlog

一時停止と再開方法について

投稿日:2014年07月16日

布内です。

cocos2d-xを使って作成したアプリでホームボタンでアプリが裏に回ってもBGMがなり続けるという事態になりました。

解決方法はAppDelegate.cpp内にあるapplicationDidEnterBackgroudという関数内にBGMの停止処理を書き込めば止まります。

恐らく最初から

void AppDelegate::applicationDidEnterBackground() {
CCDirector::sharedDirector()->stopAnimation();

SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
}

とコーディングされていると思うので、コメントアウトを外してしまえば、アプリが裏に回るとBGMが停止します。

この、applicationDidEnterBackgroundという関数ですが、アプリが裏に回ったら呼び出される関数です。
効果音等も止めたり、アプリを終了させる場合は、ここに停止処理を書き込みます。

アプリが再開する時は同様にapplicationWillEnterForegroundという関数が呼び出されます。

こちらも恐らく最初から

void AppDelegate::applicationWillEnterForeground() {
CCDirector::sharedDirector()->startAnimation();

SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
}

とコーディングされていると思うので、コメントアウトを外せば、アプリが起動時にBGMが再生されます。

この写真だと2行ずつコメントアウトされてますが、

『if you use SimpleAudioEngine, it must be pause』はSimpleAudioEngineを使うなら停止に必要

『 if you use SimpleAudioEngine, it must resume here』は再開に必要

というコメントが書かれています。

後、余談でAndroidに限った話になりますが

setKeypadEnabled(true)

でキーパッドを有効にして

keyBackClicked関数を使えば戻るボタンが有効になるので、関数内に終了処理を書けば戻るボタンになります。

PAGE TOP