
해결 방법은 다음과 같습니다.
1. FMOD 라이브러리를 올바르게 초기화하지 않은 경우입니다.
FMOD 라이브러리를 초기화하기 위해 FMOD::System_Create() 함수를 사용하여 시스템 객체를 생성하고, FMOD::System::init() 함수를 사용하여 시스템을 초기화해야 합니다.
초기화가 완료된 후에 sound 객체를 생성하고, sound 객체의 setVolume() 함수를 호출할 수 있습니다.
2. sound 객체가 NULL인 경우입니다.
sound 객체를 생성하기 전에 NULL 체크를 하여 sound 객체가 NULL인지 확인해야 합니다. 만약 sound 객체가 NULL인 경우, 오류 메시지가 FMOD_ERR_INVALID_HANDLE로 나타날 수 있습니다.
위의 코드를 수정하여 오류를 해결할 수 있는 방법은 다음과 같습니다.
#hostingforum.kr
c
#include
#include
FMOD::System* system;
FMOD::Sound* sound;
int main() {
// FMOD 라이브러리를 초기화하기 위해 시스템 객체를 생성합니다.
FMOD::System_Create(&system);
// 시스템을 초기화합니다.
system->init(32, FMOD_INIT_NORMAL, NULL);
// sound.wav 파일을 불러와 sound 객체를 생성합니다.
if (system->createSound("sound.wav", FMOD_DEFAULT, NULL, &sound) != FMOD_OK) {
// 오류가 발생한 경우, 오류 메시지를 출력합니다.
FMOD_RESULT result = system->getSystemFlags();
if (result == FMOD_ERR_FILE_NOT_FOUND) {
printf("sound.wav 파일이 존재하지 않습니다.n");
} else {
printf("오류가 발생했습니다. 오류 코드: %dn", result);
}
return 1;
}
// sound 객체의 볼륨을 설정합니다.
sound->setVolume(0.5f);
// sound 객체를 재생합니다.
system->playSound(sound, NULL, false, NULL);
// 시스템을 종료합니다.
system->release();
return 0;
}
위의 코드를 수정하여 오류를 해결할 수 있습니다. sound 객체를 생성하기 전에 NULL 체크를 하여 sound 객체가 NULL인지 확인하고, sound 객체의 setVolume() 함수를 호출하기 전에 sound 객체가 NULL인지 확인합니다.
2025-07-11 23:13