FMOD에서요~

2권에서 새로 도입된 오디오 프로그래밍 섹션에 대한 게시판입니다.

Moderator: 류광

Locked
비회원

FMOD에서요~

Post by 비회원 »

틀린그림찾기를 만들려고 하는 중인데요.. 배경음악을 실행시키는데 여기서 무한루프를 줬거든요.,.

배경음악이 계속 실행될 수 있도록이요.. 거기서 문제요 ㅠㅠ.. 게임이 실행되려면 사용자 입력값을

처리해야하여서 배경음악은 음악대로 계속 플레이 되고 사용자 인풋은 앞에서 처리하여주고 그렇게

해야 할 것같은데.. setcallback 함수를 사용하라고 하더라구요..

그런더 ㅠㅠ.. 어찌 해야할지 잘 몰라서요.. 플래그값이나.. 어디에서 넣어줘야 할지;;

setcallback을 쓰느게 맞으면 우째 써야하는지좀 알려주세요 ㅠㅠ.


#include "GameMain.h"


void d3d::ErrCheck(FMOD_RESULT result)
{
if ( result != FMOD_OK )
{
printf("FMOD error! (%d) %s\n", result, FMOD_ErrorString(result));
exit(-1);
}
}

void d3d::SoundLoop()
{
while(1)//무한루프가 되면 프로그램이 종료 되지 않습니다.
{
if(kbhit()) break;
Sleep(20);
}
}

int d3d::CreateSound()
{
struct tagSound
{
FMOD::Channel *Channel;
FMOD::Sound *Sound;
};

FMOD_RESULT result;
FMOD::System *system;

result = FMOD::System_Create(&system); // System Object 생성
d3d::ErrCheck(result);


result = system->init(100, FMOD_INIT_NORMAL, 0); // 초기화
d3d::ErrCheck(result);

result = system->release(); // 해제
d3d::ErrCheck(result);


FMOD::System_Create(&system);
system->init(100, FMOD_INIT_NORMAL, 0);

tagSound* SoundStruct;
SoundStruct = new tagSound[3];


system->createStream("03.mp3", FMOD_HARDWARE | FMOD_LOOP_OFF | FMOD_2D, NULL, &SoundStruct[0].Sound);
system->playSound(FMOD_CHANNEL_REUSE, SoundStruct[0].Sound, false, &SoundStruct[0].Channel);

d3d::SoundLoop();


unsigned int pLenth = 0;

SoundStruct[0].Sound->getLength(&pLenth, FMOD_TIMEUNIT_MS);
system->close();
system->release();

return 1;
}
비회원

Post by 비회원 »

질문이 이해가 안되서 답변을 드리기가 힘드네요.

배경음악이면 그냥 스트리밍 해주심됩니다.
FMOD 는 채널관리도 알아서 해주니까 update 만 해주심되고요.
비회원

그 방법을 몰라서요.,.,

Post by 비회원 »

어떤분은 setcallback을 쓰라구 하구..

DIRECTXSOUND로 하려다가 FMOD가 더 낫다그래서 이걸로 해보려고 첨 접하는거거든요,.,

그래서 좀 이해가 안가요 ㅠㅠ.. 예제를 잘 설명해 놓은곳도 드물고 해서요..

스트리밍할떄 어떻게 해야하는지나 플러그값은 어떻게 줘야하는지가 막막해서요 - 0-

초보랍니다;;
비회원

Re: 그 방법을 몰라서요.,.,

Post by 비회원 »

[quote="비회원"]배경음악이 깔리는 동안에도 입력되는 키값을 처리하고 싶은거에요~
그걸 알아서 해주나요?
[quote]
Locked