cocos2d-html5同样为我们做好的音乐文件的播放功能,其实我们完全可以用cocos2d-html5来做一款音乐播放器,它为我们提供好了播放,暂停,回放,循环播放等等方法,只需要简单的调用即可。
下面说说它的基本用法吧。
这套与cocos2dx相比,确实要方便一点,不需要使用命名空间,也不需要使用预加载音乐文件的方法(因为我们在之前已经把资源全部预加载好了),一切的一切都只要从cc.AudioEngine.getInstance()开始把各个方法调用出来就可以了。
我们首先需要两个音乐文件,一个背景音乐文件,一个音效文件,用一个变量保存文件名,完全是为了方便开发,不然以后如果需要修改音乐文件名要遍历整个文件去逐一修改。
var MUSIC_FILE = "res/Sound/background.mp3";
var EFFECT_FILE = "res/Sound/effect.mp3";
播放背景音乐:cc.AudioEngine.getInstance().playMusic(MUSIC_FILE, true);
playMusic()有两个重载的方法,一个是不加第二参数,一个是添加,第二参数的作用在于是否循环播放,缺省值是false。
暂停音乐:cc.AudioEngine.getInstance().pauseMusic();
继续播放:resumeMusic();
从头开始播放:rewindMusic();
停止播放:stopMusic();
检测背景音乐是否在播放:isMusicPlaying();
如果在对音乐文件频繁操作的话,每次都使用cc.AudioEngine.getInstance()过于麻烦,我们可以先用个变量保存起来,例如:
var audioEngine = cc.AudioEngine.getInstance();
这样我们对音乐文件的操作就比较方便了。比如 audioEngine.playMusic(MUSIC_FILE, false);
对于音量的调节可以这样使用:audioEngine.setMusicVolume(audioEngine.getMusicVolume() + 0.1);
这样就可以调节音量了,参数的范围在0-1之间。
音效的操作和背景音乐文件的处理基本相同
播放音效:cc.AudioEngine.getInstance().playEffect(EFFECT_FILE, false);
在播放音效方法上有一个返回值,可以从中得到这个音效的id,然后在后面对该音效的操作就可以使用这个id,我们可以用一个变量先保存
var soundId = null;
soundId = audioEngine.playEffect(EFFECT_FILE);
这样这个soundid就可以用在暂停,停止音效等上面
暂停音效:audioEngine.pauseEffect(soundId);
继续播放音效:audioEngine.resumeEffect(soundId);
停止音效:audioEngine.stopEffect(soundId);
卸载音效:audioEngine.unloadEffect(EFFECT_FILE);
暂停全部音效:audioEngine.pauseAllEffects();
恢复全部音效:audioEngine.resumeAllEffects();
停止全部音效:audioEngine.stopAllEffects();
音乐及音效的操作还是很简单的,我是在课上写的这个blog,哈哈,这个部分本该放在后面写的,但是比较简单,我就在课上闲着没事干先写了,后面会把动作这部分补上来的,如有错误,欢迎指点出来哈~