なお、Cococs2d-x 3.0.0 final にて確認しましたが、フォーラムを読む限りだと問題自体は以前から発生していたようですね。
解決方法
フォーラムに解決方法を投稿してmasterに修正内容をpushしている方が居ましたので、そちらの内容を参考に AppDelegate.cpp に以下のif/else文を追加します。void AppDelegate::applicationDidEnterBackground() {
Director::getInstance()->stopAnimation();
// 以下のようにする
#if (CC_TARGET_PLATFORM != CC_PLATFORM_IOS)
SimpleAudioEngine::getInstance()->pauseBackgroundMusic();
SimpleAudioEngine::getInstance()->pauseAllEffects();
#endif
}
void AppDelegate::applicationWillEnterForeground() {
Director::getInstance()->startAnimation();
// 以下のようにする
#if (CC_TARGET_PLATFORM != CC_PLATFORM_IOS)
SimpleAudioEngine::getInstance()->resumeBackgroundMusic();
SimpleAudioEngine::getInstance()->resumeAllEffects();
#endif
}
問題のコードですが、Androidですとsuspend時に音声再生を停止しなければバックグラウンド再生されてしまう為、追加する必要があるコードとなります。ですが、iOSで実行してしまうとresume後に音声再生されない現象がたまに発生してしまいます。なので、iOSでは実行しないようにすれば解決します。
0 件のコメント:
コメントを投稿