AudioMgr.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /**
  2. * 音乐管理器
  3. */
  4. import Global from "../Global";
  5. import GameLog from "./GameLogMgr";
  6. import CacheMgr from "./CacheMgr";
  7. import LoadMgr from "./LoadMgr";
  8. const {ccclass} = cc._decorator;
  9. @ccclass
  10. export default class AudioMgr {
  11. /**
  12. * @param isStop
  13. */
  14. public static backMusic(isStop = true) {
  15. if (CacheMgr.setting.setting.music === 0) {
  16. cc.audioEngine.stopMusic();
  17. } else if (!isStop) {
  18. cc.audioEngine.stopMusic();
  19. } else if (!cc.audioEngine.isMusicPlaying()) {
  20. LoadMgr.load_AudioClip("bg").then((audio: cc.AudioClip) => {
  21. cc.audioEngine.playMusic(audio, true);
  22. cc.audioEngine.setMusicVolume(CacheMgr.setting.setting.music);
  23. });
  24. }
  25. }
  26. public static play(url: string, max: number = 1, loop: boolean = false) {
  27. return new Promise((resolve, reject) => {
  28. if (CacheMgr.setting.setting.audio === 0) {
  29. GameLog.warn(" 当前音量静音 ");
  30. resolve(false);
  31. }
  32. LoadMgr.load_AudioClip(url).then((audio: cc.AudioClip) => {
  33. let id: number = 0;
  34. cc.audioEngine.setEffectsVolume(max * CacheMgr.setting.setting.audio);
  35. id = cc.audioEngine.playEffect(audio, loop)
  36. resolve(id);
  37. })
  38. // Global.bundleList.audio.load(url, cc.AudioClip, (err: Error, audio: cc.AudioClip) => {
  39. // if (err) {
  40. // GameLog.error(' 音效播放错误 ', url);
  41. // reject(false);
  42. // }
  43. // let id: number = 0;
  44. // cc.audioEngine.setEffectsVolume(max * CacheMgr.setting.setting.audio);
  45. // id = cc.audioEngine.playEffect(audio, loop)
  46. // resolve(id);
  47. // });
  48. });
  49. }
  50. }