各位大佬好,本人初学cocos2d-x。想要更改音量大小,但是由于引擎源码中没有实现这四个函数,我也上网搜了不少答案,几乎都一模一样,但是照着上面的修改,编译通过但还是不能更改大小,请各位大佬帮忙看看,谢谢。
//修改了的部分
//MciPlayer.h
#include<Digitalv.h>
void SetVolume(UINT volume);
UINT GetVolume() const;
void MciPlayer::SetVolume(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::GetVolume() 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;
}
float SimpleAudioEngine::getBackgroundMusicVolume()
{
return sharedMusic().GetVolume()/1000.0f;
}
void SimpleAudioEngine::setBackgroundMusicVolume(float volume)
{
sharedMusic().SetVolume((UINT)(volume * 1000.0));
}
float SimpleAudioEngine::getEffectsVolume()
{
return sharedList().begin()->second->GetVolume() / 1000.0f;
}
void SimpleAudioEngine::setEffectsVolume(float volume)
{
EffectList::iterator iter;
for (iter = sharedList().begin(); iter != sharedList().end(); iter++)
{
iter->second->SetVolume((UINT)(volume * 1000.0));
}
}
以上就是我修改的全部内容了。