console.log("############################ init sound manager ###########################################")
//声音管理模块对象;
var sound_manager = {
is_music_mute: -1, //背景音乐是否禁音 0没有静音 1静音
is_effect_mute: -1, //音效是否禁音 0没有静音 1静音
set_music_mute: function(is_mute){
if (this.is_music_mute === is_mute){ //状态没有改变;
return;
}
this.is_music_mute = (is_mute) ? 1 : 0;
//如果静音,将音量调到0,否则,调到1;
if (this.is_music_mute === 1){
cc.audioEngine.setMusicVolume(0);
}
else if(this.is_music_mute === 0){
cc.audioEngine.setMusicVolume(1);
}
//将参数保存到本地
cc.sys.localStorage.setItem("music_mute", this.is_music_mute);
},
set_effect_mute(is_mute){
if (this.is_effect_mute === is_mute){return;}
this.is_effect_mute = is_mute ? 1 : 0;
if(this.is_effect_mute === 1){
cc.audioEngine.setEffectsVolume(0);
}
else if(this.is_effect_mute === 0){
cc.audioEngine.setEffectsVolume(1);
}
cc.sys.localStorage.setItem("effect_mute", this.is_effect_mute);
},
//播放背景音乐
play_music: function(file_name, is_loop){
cc.audioEngine.stopMusic();
var url = cc.url.raw(file_name);
cc.audioEngine.playMusic(url, is_loop);
if (this.is_music_mute === 1){
cc.audioEngine.setMusicVolume(0);
}
else if(this.is_music_mute === 0){
cc.audioEngine.setMusicVolume(1);
}
},
//播放音效:
play_effect: function(file_name, is_loop){
if (this.is_effect_mute === 1){
return;
}
cc.audioEngine.stopAllEffects();
var url = cc.url.raw(file_name);
cc.audioEngine.playEffect(url, is_loop);
if(this.is_effect_mute === 0){
cc.audioEngine.setEffectsVolume(1);
}
},
play_click_effect:function(){
this.play_effect("resources/sounds/audio/click.wav", false)
},
}
//获取用户本地背景设置;
var local_music_mute = cc.sys.localStorage.getItem("music_mute");
if (local_music_mute){
local_music_mute = parseInt(local_music_mute);
console.log
}
else{
local_music_mute = 0;
}
sound_manager.set_music_mute(local_music_mute);
//获取用户本地音效设置;
var local_effect_mute = cc.sys.localStorage.getItem("effect_mute");
if(local_effect_mute){
local_effect_mute = parseInt(local_effect_mute);
}
else
{
local_effect_mute = 0;
}
sound_manager.set_effect_mute(local_effect_mute);
module.exports = sound_manager;
注意 1.cc.sys.localStorage,适用于native 和 h5, getItem("key"),返回值为字符串。
2. 音效设置音量为0,如果播仍会有微弱的声音,(那就别播,如果禁音效)
3. 设置音乐声音的时候,调用播放函数,声音会恢复,所以要静音继续设置音量为0
4. 预加载声音 cc.audioEngine.preload