cocos2dx windows 音量设置无效解决办法

1、

MciPlayer.h 中添加

#include <Digitalv.h>

类MciPlayer中添加两个函数

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;
}

 

2、SimpleAudioEngine.cpp文件修改以下函数为:

 

  

float SimpleAudioEngine::getBackgroundMusicVolume()
{
  return sharedMusic().Volume() / 1000.0f;
}

void SimpleAudioEngine::setBackgroundMusicVolume(float volume)
{
  sharedMusic().Volume((UINT)(volume * 1000.0));
}

float SimpleAudioEngine::getEffectsVolume()
{
  return sharedList().begin()->second->Volume() / 1000.0f;
}

void SimpleAudioEngine::setEffectsVolume(float volume)
{
  EffectList::iterator iter;
  for (iter = sharedList().begin(); iter != sharedList().end(); iter++)
  {
    iter->second->Volume((UINT)(volume * 1000.0));
  }
}

原文地址:https://www.cnblogs.com/yxc6123/p/7903083.html