cocos2dx-3.x 增加win版下setBackgroundMusicVolume功能

来源:互联网 发布:大宗商品交易软件排名 编辑:程序博客网 时间:2024/06/06 09:56

一.在项目中找到audio目录,3.3的目录路径:F:\cocogames\GitPlane\GitPlane\cocos2d\cocos\audio 的win32目录下修改 MciPlayer.h文件,

1.包含#include <Digitalv.h>头文件;

2.增加两个函数:

public:void Volume(UINT volume){if (!_dev)return;MCI_DGV_SETAUDIO_PARMS mciParams = { 0 };mciParams.dwItem = MCI_DGV_SETAUDIO_VOLUME;mciParams.dwValue = volume;mciSendCommand(_dev, MCI_SETAUDIO, MCI_DGV_SETAUDIO_ITEM | MCI_DGV_SETAUDIO_VALUE, (DWORD)&mciParams);}UINT MciPlayer::Volume() const{if (!_dev)return 0;MCI_STATUS_PARMS mciParams = { 0 };mciParams.dwItem = MCI_DGV_STATUS_VOLUME;mciSendCommand(_dev, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)&mciParams);return mciParams.dwReturn;}

打开SimpleAudioEngine.cpp文件,修改 getBackgroundMusicVolume()、setBackgroundMusicVolume(float volume)getEffectsVolume()setEffectsVolume(float volume),四个函数的实现:

float SimpleAudioEngine::getBackgroundMusicVolume(){    //return 1.0;// add by xxj 2014/11/06  15:34:19 return sharedMusic().Volume() / 1000.0f;}void SimpleAudioEngine::setBackgroundMusicVolume(float volume){// add by xxj 2014/11/06  15:58:13 sharedMusic().Volume((UINT)(volume * 1000.0));}float SimpleAudioEngine::getEffectsVolume(){    //return 1.0;// add by xxj 2014/11/06  15:34:41 return sharedList().begin()->second->Volume() / 1000.0f;}void SimpleAudioEngine::setEffectsVolume(float volume){// add by xxj 2014/11/06  15:58:07 EffectList::iterator iter;for (iter = sharedList().begin(); iter != sharedList().end(); iter++){iter->second->Volume((UINT)(volume * 1000.0));}}

重新编译项目,即可实现音量大小的控制!!

原创粉丝点击