cocos2d 使用SimpleAudioEngine加载音乐音效

来源:互联网 发布:淘宝云客服没有招聘 编辑:程序博客网 时间:2024/04/27 14:07

游戏音乐与音效

cocos2d中使用SimpleAudioEngine可以很简单的播放背景音乐和音效

背景音乐默认是循环播放的,音效默认是播放一次,而且一般情况音效都是很短的。

下面我们首先来分析一下SimpleAudioEngine这个类

这个类中有三个属性(backgroundMusicVolume,effectsVolume,willPlayBackgroundMusic)但是没有用到我也不明白他们为什么要定义这三个属性

+ (SimpleAudioEngine*) sharedEngine

获取单例的方法

-(void) preloadBackgroundMusic:(NSString*) filePath

加载背景音乐,通过这个方法可以把游戏中需要用到的背景音乐提前加载好

-(void) playBackgroundMusic(NSString*)filePath;

-(void) playBackgroundMusic(NSString*)filePath loop:(BOOL) loop;

filePath:文件路径(项目中的文件名) 

loop:播放循环 YES是循环播放 NO是播放一次  缺省了loop则默认为YES

-(void) stopBackgroundMusic;

停止背景音乐

-(void) pauseBackgroundMusic;

暂停背景音乐

-(void) resumeBackgroundMusic;

恢复播放背景音乐

-(void) rewindBackgroundMusic;

倒回,即重新开始播放背景音乐

-(BOOL) isBackgroundMusicPlaying

判断背景音乐是否正在播放


-(ALuint) playEffect:(NSString*) filePath;

ALuint :是无符号整形变量(unsigned int)同义词,即别名。这个返回值表示播放的音效ID。

filePath :文件路径

-(void) stopEffect:(ALuint) soundId;

在这里我们可以通过soundId,来停掉某一个音效,soundId的值是上一个方法获取到的。

-(void) preloadEffect:(NSString*) filePath;

加载音效,通过这个方法我们可以把游戏中用到的音效,都预先加载好,音效都会放在一个数组中,在播放的时候,直接根据filePath找到相应的音效播放。

-(void) unloadEffect:(NSString*) filePath;

释放某一个音效

-(CDSoundSource *) soundSourceForFile:(NSString*) filePath;

这个方法我们可以通过filePath来获取相应的音效的配置信息(CDSoundSource),CDSoundSource属性中有soundId,当我们想要停止某一个音效的时候可以通过这个方法来获取soundId。


-(void) setMute:(BOOL) muteValue

禁声,muteValue 值为YES时没有声音,相反则有声

-(void) setBackgroundMusicVolume:(float) volume

设置背景音乐音量volume这里如果不设置的话默认为1.0f,值越大音量越大

-(float) backgroundMusicVolume

获取背景音乐音量值

-(void) setEffectsVolume:(float) volume

设置音效音量volume这里如果不设置的话默认为1.0f,值越大音量越大

-(float) effectsVolume

获取音效音量值


//下面是常用的方法

加载背景音乐

[[SimpleAudioEngine sharedEngine] preloadBackgroundMusic:@"background.mp3"];

播放背景音乐

[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"background.mp3"];

暂停背景音乐

   [[SimpleAudioEngine sharedEngine] puseBackgroundMusic];

继续播放背景音乐

   [[SimpleAudioEngine sharedEngine] resumeBackgroundMusic];

停止背景音乐

   [[SimpleAudioEngine sharedEngine] stopBackgroundMusic];

播放音效

   [[SimpleAudioEngine sharedEngine] playEffect:@"effect1.wav"];

加载音效

   [[SimpleAudioEngine sharedEngine] preloadEffect:@"effect1.wav"];

设置噤声

  [[SimpleAudioEngine sharedEngine] setMute:YES];

设置音量

   [[SimpleAudioEngine sharedEngine] setBackgroundMusicVolume:0.5f];

   [[SimpleAudioEngine sharedEngine] setEffectsVolume:2.0f];

我把这些常用的方法封装了一下这里把代码提供给大家参考


原创粉丝点击