AudioController.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. cc.Class({
  2. extends: cc.Component,
  3. properties: {
  4. },
  5. onLoad()
  6. {
  7. this.musicNameArr = [];
  8. this.musicArr = [];
  9. },
  10. play(name)
  11. {
  12. for(let i=0;i<this.musicNameArr.length;i++)
  13. {
  14. if(name == this.musicNameArr[i])
  15. {
  16. return;
  17. }
  18. }
  19. let self = this;
  20. cc.loader.loadRes(name, cc.AudioClip, (err, audioClip)=> {
  21. let aAudio = cc.audioEngine.play(audioClip, false, 1);
  22. self.musicNameArr.push(name);
  23. self.musicArr.push(aAudio);
  24. });
  25. },
  26. playAudio(name,callback)
  27. {
  28. for(let i=0;i<this.musicNameArr.length;i++)
  29. {
  30. if(name == this.musicNameArr[i])
  31. {
  32. return;
  33. }
  34. }
  35. let self = this;
  36. cc.loader.loadRes(name, cc.AudioClip, (err, audioClip)=> {
  37. let aAudio = cc.audioEngine.play(audioClip, false, 1);
  38. self.musicNameArr.push(name);
  39. self.musicArr.push(aAudio);
  40. cc.audioEngine.setFinishCallback(aAudio, function ()
  41. {
  42. self.stop(name);
  43. callback();
  44. });
  45. });
  46. },
  47. playBGM(name,volume,callback)
  48. {
  49. for(let i=0;i<this.musicNameArr.length;i++)
  50. {
  51. if(name == this.musicNameArr[i])
  52. {
  53. return;
  54. }
  55. }
  56. let self = this;
  57. cc.loader.loadRes(name, cc.AudioClip, (err, audioClip)=> {
  58. let aAudio = cc.audioEngine.play(audioClip, true, volume);
  59. self.musicNameArr.push(name);
  60. self.musicArr.push(aAudio);
  61. callback();
  62. });
  63. },
  64. stop(name)
  65. {
  66. for(let i=0;i<this.musicNameArr.length;i++)
  67. {
  68. if(name == this.musicNameArr[i])
  69. {
  70. cc.audioEngine.stop(this.musicArr[i]);
  71. this.musicArr.splice(i,1);
  72. this.musicNameArr.splice(i,1);
  73. return;
  74. }
  75. }
  76. },
  77. stopAll()
  78. {
  79. for(let i=0;i<this.musicNameArr.length;i++)
  80. {
  81. cc.audioEngine.stop(this.musicArr[i]);
  82. }
  83. this.musicArr.length = 0;
  84. this.musicNameArr.length = 0;
  85. }
  86. });