はじめに
cocos2d-2.0-x-2.0.2でのお話です。
執筆時点で2.0.3が出ているので直ってるかもしれません。
androidでだけ動かない!
特定のシーン内だけでBGMを鳴らしたかったので
void HogeScene::onEnterTransitionDidFinish()
{
CCLayer::onEnterTransitionDidFinish();
// playBGM
CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("BGM.mp3",true);
}
void HogeScene::onExit()
{
CCLayer::onExit();
// stopBGM
CocosDenshion::SimpleAudioEngine::sharedEngine()->stopBackgroundMusic();
}
としていたのですが、iOSでは問題なく動くもののandroidの実機(MOTOROLA PHOTON)でなぜかフリーズ!エラーログすら出ない!
色々試してみたら何回も読み込むのが問題ありそうだなってことで、
AppDelegate.cppのapplicationDidFinishLaunching()で
CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("BGM.mp3",true);
CocosDenshion::SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
問題のシーンで
void HogeScene::onEnterTransitionDidFinish()
{
CCLayer::onEnterTransitionDidFinish();
// playBGM
CocosDenshion::SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
}
void HogeScene::onExit()
{
CCLayer::onExit();
// stopBGM
CocosDenshion::SimpleAudioEngine::sharedEngine()->rewindBackgroundMusic();
CocosDenshion::SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
}
とすることで問題なく動くようになりました。
0 件のコメント:
コメントを投稿