cocos2dx windows 音量設置無效解決辦法

一、git

MciPlayer.h 中添加函數

#include <Digitalv.h>ci

類MciPlayer中添加兩個函數get

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

 

二、SimpleAudioEngine.cpp文件修改如下函數爲:io

 

  

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

相關文章
相關標籤/搜索