#include "CustomAudioManager.h" #include "cocos2d.h" #include "AudioEngine.h" #include "SimpleAudioEngine.h" USING_NS_CC; using namespace CocosDenshion; CustomAudioManager* CustomAudioManager::_instance = nullptr; CustomAudioManager::CustomAudioManager() { } CustomAudioManager* CustomAudioManager::getInstance(){ if (_instance == nullptr) { _instance = new CustomAudioManager(); } return _instance; } void CustomAudioManager::playEffect(const std::string& filename, bool loop){ #if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 std::string name = filename.substr(0, filename.find(".")); experimental::AudioEngine::play2d(name+".mp3", loop, 0.4f); #else SimpleAudioEngine::getInstance()->setEffectsVolume(0.4f); SimpleAudioEngine::getInstance()->playEffect(filename.c_str(), loop); #endif } void CustomAudioManager::playBackgroundSound(const std::string& filename, bool loop){ #if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 std::string name = filename.substr(0, filename.find(".")); experimental::AudioEngine::play2d(name+".mp3", loop, 0.3f); #else SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(0.3f); SimpleAudioEngine::getInstance()->playBackgroundMusic(filename.c_str(), loop); #endif } void CustomAudioManager::preloadEffect(const std::string& filename){ #if CC_TARGET_PLATFORM != CC_PLATFORM_WIN32 SimpleAudioEngine::getInstance()->preloadEffect(filename.c_str()); #endif } void CustomAudioManager::preloadBackground(const std::string& filename){ #if CC_TARGET_PLATFORM != CC_PLATFORM_WIN32 SimpleAudioEngine::getInstance()->preloadBackgroundMusic(filename.c_str()); #endif } void CustomAudioManager::resumeAll(){ #if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 experimental::AudioEngine::resumeAll(); #else SimpleAudioEngine::getInstance()->resumeBackgroundMusic(); SimpleAudioEngine::getInstance()->resumeAllEffects(); #endif } void CustomAudioManager::pauseAll(){ #if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 experimental::AudioEngine::pauseAll(); #else SimpleAudioEngine::getInstance()->pauseBackgroundMusic(); SimpleAudioEngine::getInstance()->pauseAllEffects(); #endif } void CustomAudioManager::stopAll(){ #if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 experimental::AudioEngine::stopAll(); #else SimpleAudioEngine::getInstance()->stopAllEffects(); SimpleAudioEngine::getInstance()->stopBackgroundMusic(); #endif }