OpenAl을 사용하여 오디오 파일을 재생하려하지만 실제로 아무 것도 재생하지 않습니다. alSourcePlay를 호출 한 후 오디오 파일이 재생되는지 확인하면 상태는 여전히 AL_INITIAL입니다. 여기OpenAL에서 재생하려고 시도했지만 AL_INITIAL 상태가되지 않습니다.
I는 오디오 재생 어디 :
// Make sure the audio source ident is valid and usable
if (audioID >= MAX_AUDIO_SOURCES || !mAudioSourceInUse[audioID])
return false;
int sourceAudioState = 0;
if(!alIsSource(mAudioSources[audioID]) == AL_TRUE) return false;
alGetError();
// Are we currently playing the audio source?
alGetSourcei(mAudioSources[audioID], AL_SOURCE_STATE, &sourceAudioState);
if (sourceAudioState == AL_PLAYING)
{
printf("Currently playing!\n");
if (forceRestart)
stopAudio(audioID);
else
return false; // Not forced, so we don't do anything
}
alSourcePlay(mAudioSources[ audioID ]);
if (checkALError("playAudio::alSourcePlay: "))
return false;
alGetSourcei(mAudioSources[audioID], AL_SOURCE_STATE, &sourceAudioState);
printState(sourceAudioState);
if(sourceAudioState == AL_PLAYING)
{
printf("Now playing!\n\n");
}
return true;
mAudioSources을 alGenBuffers하여 만든 버퍼의 배열이다. 파일은
mAudioBuffers[bufferID] = alutCreateBufferFromFile(filename.c_str());
과 함께로드됩니다.이 파일은 alGetError에서 오류를 발생시키지 않습니다. 어떤 아이디어?