FmodEx를 사용할 때 특정 문제가 있습니다. 누군가가 내 문제가 있었는지 확인하기 위해 그물을 철저히 수색했지만 그와 관련있는 것을 찾지 못했습니다. 나는 내 소리를로드하고 재생하는 클래스를 만들었습니다.이 경우에는 스트림입니다.FMOD Ex 메모리 할당 문제
pAudio->LoadMusic("test.mp3");
pAudio->Play();
사운드가 아무 문제 연주되지 않습니다 : 난 그냥 할이 후
Audio::Audio()
{
//Create system object//
m_Result = FMOD::System_Create(&m_pSystem);
ErrorCheck(m_Result);
//Check FMOD version//
m_Result = m_pSystem->getVersion(&m_FmodVersion);
if(m_FmodVersion < FMOD_VERSION)
MessageBox(NULL, FMOD_ErrorString(m_Result), "FMOD Version Error", MB_OK);
//Check if hardware acceleration is disabled//
m_pSystem->getDriverCaps(0, &m_Caps, 0, &m_SpeakerMode);
if (m_Caps & FMOD_CAPS_HARDWARE_EMULATED)
MessageBox(NULL, FMOD_ErrorString(m_Result), "FMOD Acceleration Error", MB_OK);
//Initialize system object//
m_Result = m_pSystem->init(2, FMOD_INIT_NORMAL, 0);
ErrorCheck(m_Result);
m_pChannel = 0;
m_IsLoaded = false;
}
void Audio::LoadMusic(char *filename)
{
m_Result = m_pSystem->createStream(filename, FMOD_CREATESTREAM, 0, &m_pSound);
ErrorCheck(m_Result);
}
void Audio::Play()
{
SetPause(false);
m_Result = m_pSystem->playSound(FMOD_CHANNEL_FREE, m_pSound, false, &m_pChannel);
ErrorCheck(m_Result);
SetPause(true);
}
: 여기 내 코드입니다. 스트림을로드 할 때 문제가 발생합니다. 사용 된 메모리는 계속 증가하며 멈추지 않습니다. mp3 스트림을 읽는 데 사용하는 작은 버퍼가 해제되어 있지 않으므로 RAM의 다음 사용 가능한 조각을 찾습니다. 따라서 프로그램의 메모리 사용량이 멈추지 않습니다. 증가. 각 play가 끝난 후에 "release"메서드를 사용하는 것이 좋겠다고 생각했지만 그 릴리스는 사운드 인스턴스의 모든 메모리를 해제한다는 것을 알았습니다.
누구나 내가 여기서 잘못하고있는 것에 대한 조언을 해줄 수 있습니까? 어떻게 이것을 막을 수 있습니까? 충분히 명확하게 만들었는지 확실하지 않습니다. 도움을 미리 감사드립니다.