Feel free to fix/add documentation to the wiki
CocosDenshion Cookbook
Some code “recipes” for working with CocosDenshion
SimpleAudioEngine
One nice thing about SimpleAudioEngine is that it requires minimal set up. It makes intelligent choices for you and uses lazy initialization which greatly simplifies adding sound to your project. Once you have CocosDenshion added to your project as outlined in the FAQ then simply import “SimpleAudioEngine.h” in files that require sound access and then you can use code like the following for playing sound effects and music.
Play a sound
Play the sound stored in the file mysound.wav.
[[SimpleAudioEngine sharedEngine] playEffect:@"mysound.wav"];//play a sound
Play some background music
Play an mp3 file named somemusic.mp3 in an endless loop.
[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"somemusic.mp3"];//play background music
Pause the background music
Pause the background music.
[[SimpleAudioEngine sharedEngine] pauseBackgroundMusic];//pause background music
Play background music from the start again
Just call playBackgroundMusic again. If the file matches the currently playing music then the background music will be restarted from the beginning.
[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"somemusic.mp3"];//play background music
Preload the background music
Use preloadBackgroundMusic to reduce start up time when you call playBackgroundMusic. You can also do this to ensure there is a background music object to set properties against (such as volume) before you call playBackgroundMusic.
SimpleAudioEngine *sae = [SimpleAudioEngine sharedEngine]; if (sae != nil) { [sae preloadBackgroundMusic:@"mula_tito_on_timbales.mp3"]; if (sae.willPlayBackgroundMusic) { sae.backgroundMusicVolume = 0.5f; } }
CDAudioManager
Set background music volume
Set the volume property of the backgroundMusic AVAudioPlayer object directly. Range is 0.0 for off to 1.0 for maximum volume. Note this will only have an effect if there is a backgroundMusic object so you must have previously called playBackgroundMusic or preloadBackgroundMusic. Also note that volume is a property of each individual AVAudioPlayer therefore if you change the background music the volume property will not persist, it needs to be set for the new AVAudioPlayer/backgroundMusic object.
[CDAudioManager sharedManager].backgroundMusic.volume = 1.0f;
Get notified when the background music stops
Register a method/selector to get notified when background music stops. Note that music that is set up to loop repeatedly will never complete, you do not get a notification for each loop.
[[CDAudioManager sharedManager] setBackgroundMusicCompletionListener:self selector:@selector(backgroundMusicFinished)];
Loop my background music a specific number of times
Start the background music, it doesn't really matter whether you specify yes or no for looping. Then set the numberOfLoops property on the backgroundMusic AVAudioPlayer object directly.
[[CDAudioManager sharedManager] playBackgroundMusic:@"mula_tito_on_timbales.mp3" loop:YES]; [CDAudioManager sharedManager].backgroundMusic.numberOfLoops = 3;//To loop 3 times
Trace: » cocos2d_and_uikitlayer » tiled_maps » hello_actions » hello_world » cookbook