cocos2dxでは、音を簡単に鳴らすことができます。 その際に利用するのが、SimpleAudioEngineクラスです。
BGMを鳴らす
音楽データが準備できれば、以下のコードでBGMを鳴らすことができます。
[c]
//SimpleAudioEngineが利用できるように設定する
include "SimpleAudioEngine.h"
using namespace CocosDenshion;
//init()内 //あらかじめ、音楽データを読み込む SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(0.5); SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic("field.mp3");
//音楽を再生する SimpleAudioEngine::sharedEngine()->playBackgroundMusic(field.mp3);
[/c]
あらかじめ、音楽データを読み込まなくても再生できますが、メモリーの負荷が高まる、また再生が遅れるなど起る場合があります。 ですので、preloadBackgroundMusic()を利用した方がいいでしょう。
BGMを止める
BGMを止める場合は、以下のコードを利用します。
[c]
//音楽を止める SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(true);
[/c]
その他の処理
その他、色々なことができます。
[c]
//一時停止 SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
//再開 SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
//音楽を先頭に戻す SimpleAudioEngine::sharedEngine()->rewindBackgroundMusic();
//音量を変更する SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(0.4)
//今、BGMが流れているかどうか
if(SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying){
}else{
}
[/c]
効果音を鳴らす
続きましては、効果音を鳴らす方法です。 だいたい以下のようなコードになります。
[c]
//SimpleAudioEngineが利用できるように設定する
include "SimpleAudioEngine.h"
using namespace CocosDenshion;
//init()内 //あらかじめ、音楽データを読み込む SimpleAudioEngine::sharedEngine()->setEffectsVolume(0.5); SimpleAudioEngine::sharedEngine()->preloadEffect("beam.mp3");
//音楽を再生する // int soundID; soundID = SimpleAudioEngine::sharedEngine()->playEffect(beam.mp3);
[/c]
効果音も、事前に音楽データを読み込まなくても再生できます。
その他の処理
その他、色々なことができます。 その際に、どの効果音に処理をするかを、効果音を再生時に取得したint型の数字を利用します。
[c]
//効果音を止める SimpleAudioEngine::sharedEngine()->stopEffect(soundID);
//一時停止 SimpleAudioEngine::sharedEngine()->pauseEffect(soundID);
//再開 SimpleAudioEngine::sharedEngine()->resumeEffect(soundID);
[/c]
音楽データについて
cocos2dで利用していた際には,m4a(AAC規格)のデータを利用してできるだけデータの容量を小さくしていましたが、Andoridの場合はこれが利用できないみたいです。 ですので、Andorid用のデータを新たに用意するが、またMP3を利用した場合、両方のOSで音楽が再生できるみたいです。
この辺りのフォーマットについては注意が必要ですね。