You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

121 lines
2.8 KiB

  1. --Encapsulate SimpleAudioEngine to AudioEngine,Play music and sound effects.
  2. local M = {}
  3. function M.stopAllEffects()
  4. cc.SimpleAudioEngine:getInstance():stopAllEffects()
  5. end
  6. function M.getMusicVolume()
  7. return cc.SimpleAudioEngine:getInstance():getMusicVolume()
  8. end
  9. function M.isMusicPlaying()
  10. return cc.SimpleAudioEngine:getInstance():isMusicPlaying()
  11. end
  12. function M.getEffectsVolume()
  13. return cc.SimpleAudioEngine:getInstance():getEffectsVolume()
  14. end
  15. function M.setMusicVolume(volume)
  16. cc.SimpleAudioEngine:getInstance():setMusicVolume(volume)
  17. end
  18. function M.stopEffect(handle)
  19. cc.SimpleAudioEngine:getInstance():stopEffect(handle)
  20. end
  21. function M.stopMusic(isReleaseData)
  22. local releaseDataValue = false
  23. if nil ~= isReleaseData then
  24. releaseDataValue = isReleaseData
  25. end
  26. cc.SimpleAudioEngine:getInstance():stopMusic(releaseDataValue)
  27. end
  28. function M.playMusic(filename, isLoop)
  29. local loopValue = false
  30. if nil ~= isLoop then
  31. loopValue = isLoop
  32. end
  33. cc.SimpleAudioEngine:getInstance():playMusic(filename, loopValue)
  34. end
  35. function M.pauseAllEffects()
  36. cc.SimpleAudioEngine:getInstance():pauseAllEffects()
  37. end
  38. function M.preloadMusic(filename)
  39. cc.SimpleAudioEngine:getInstance():preloadMusic(filename)
  40. end
  41. function M.resumeMusic()
  42. cc.SimpleAudioEngine:getInstance():resumeMusic()
  43. end
  44. function M.playEffect(filename, isLoop)
  45. local loopValue = false
  46. if nil ~= isLoop then
  47. loopValue = isLoop
  48. end
  49. return cc.SimpleAudioEngine:getInstance():playEffect(filename, loopValue)
  50. end
  51. function M.rewindMusic()
  52. cc.SimpleAudioEngine:getInstance():rewindMusic()
  53. end
  54. function M.willPlayMusic()
  55. return cc.SimpleAudioEngine:getInstance():willPlayMusic()
  56. end
  57. function M.unloadEffect(filename)
  58. cc.SimpleAudioEngine:getInstance():unloadEffect(filename)
  59. end
  60. function M.preloadEffect(filename)
  61. cc.SimpleAudioEngine:getInstance():preloadEffect(filename)
  62. end
  63. function M.setEffectsVolume(volume)
  64. cc.SimpleAudioEngine:getInstance():setEffectsVolume(volume)
  65. end
  66. function M.pauseEffect(handle)
  67. cc.SimpleAudioEngine:getInstance():pauseEffect(handle)
  68. end
  69. function M.resumeAllEffects(handle)
  70. cc.SimpleAudioEngine:getInstance():resumeAllEffects()
  71. end
  72. function M.pauseMusic()
  73. cc.SimpleAudioEngine:getInstance():pauseMusic()
  74. end
  75. function M.resumeEffect(handle)
  76. cc.SimpleAudioEngine:getInstance():resumeEffect(handle)
  77. end
  78. function M.getInstance()
  79. return cc.SimpleAudioEngine:getInstance()
  80. end
  81. function M.destroyInstance()
  82. return cc.SimpleAudioEngine:destroyInstance()
  83. end
  84. local modename = "AudioEngine"
  85. local proxy = {}
  86. local mt = {
  87. __index = M,
  88. __newindex = function (t ,k ,v)
  89. print("attemp to update a read-only table")
  90. end
  91. }
  92. setmetatable(proxy,mt)
  93. _G[modename] = proxy
  94. package.loaded[modename] = proxy