123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- /*
- *****Created By Alex 2018 08 24
- */
- var AudioMgr = cc.Class({
- extends: cc.Component,
- properties: {
- bgmVolume:0.5,
- sfxVolume:1.0,
- bgmAudioID:-1,
- musicState:1, //1 表示开启 0 表示关闭
- },
- // use this for initialization
- init: function () {
- cc.Mgr.loadSound = false;
- var t = cc.sys.localStorage.getItem("bgmVolume");
- if(t != null){
- this.bgmVolume = parseFloat(t);
- }
-
- var t = cc.sys.localStorage.getItem("sfxVolume");
- if(t != null){
- this.sfxVolume = parseFloat(t);
- }
-
- cc.game.on(cc.game.EVENT_HIDE, function () {
- console.log("cc.audioEngine.pauseAll");
- cc.audioEngine.pauseAll();
- });
- cc.game.on(cc.game.EVENT_SHOW, function () {
- console.log("cc.audioEngine.resumeAll");
- cc.audioEngine.resumeAll();
- });
- },
- //获取需要播放某个音效用 根据名字来
- // getUrl:function(url){
- // return cc.url.raw("resources/sound/" + url + ".mp3");
- // },
- getUrl: function(url) {
- return new Promise((resolve, reject) => {
- cc.resources.load("sound/" + url, cc.AudioClip, (err, clip) => {
- if (err) {
- reject(err);
- } else {
- resolve(clip);
- }
- });
- });
- },
-
- ////播放背景音乐
- // playBGM:function(url){
- // var audioUrl = this.getUrl(url);
- // if(this.bgmAudioID >= 0){
- // cc.audioEngine.stop(this.bgmAudioID);
- // }
- // this.bgmAudioID = cc.audioEngine.play(audioUrl,true,this.bgmVolume);
- // },
- // //播放音效
- // playSFX:function(url){
- // var audioUrl = this.getUrl(url);
- // cc.audioEngine.play(audioUrl,false,this.sfxVolume);
- // },
- // 播放背景音乐
- playBGM: function(url) {
- this.getUrl(url).then((clip) => {
- if (this.bgmAudioID >= 0) {
- cc.audioEngine.stop(this.bgmAudioID);
- }
- this.bgmAudioID = cc.audioEngine.play(clip, true, this.bgmVolume);
- }).catch((err) => {
- console.error("zh:Failed to load BGM clip:", err);
- });
- },
- // 播放音效
- playSFX: function(url) {
- this.getUrl(url).then((clip) => {
- cc.audioEngine.play(clip, false, this.sfxVolume);
- }).catch((err) => {
- console.error("zh:Failed to load SFX clip:", err);
- });
- },
- //设置音效大小
- setSFXVolume:function(v){
- if(this.sfxVolume != v){
- cc.sys.localStorage.setItem("sfxVolume",v);
- this.sfxVolume = v;
- }
- },
- //设置背景音大小
- setBGMVolume:function(v,force){
- if(this.bgmAudioID >= 0){
- if(v > 0){
- cc.audioEngine.resume(this.bgmAudioID);
- }
- else{
- cc.audioEngine.pause(this.bgmAudioID);
- }
- }
- if(this.bgmVolume != v || force){
- cc.sys.localStorage.setItem("bgmVolume",v);
- this.bgmVolume = v;
- cc.audioEngine.setVolume(this.bgmAudioID,v);
- }
- },
- //暂停
- pauseAll:function(){
- this.musicState = 0;
- this.bgmVolume = 0.0;
- this.sfxVolume = 0.0;
- cc.audioEngine.pauseAll();
- },
- //恢复
- resumeAll:function(){
- this.musicState = 1;
- this.bgmVolume = 0.5;
- this.sfxVolume = 1.0;
- cc.audioEngine.resumeAll();
- },
- getVoiceState:function(){
- return this.musicState;
- },
- });
|