Я пытаюсь воспроизвести аудиофайл с помощью OpenAl, но на самом деле он ничего не воспроизводит.Когда я проверяю, воспроизводится ли аудиофайл после вызова alSourcePlay, состояние по-прежнему равно AL_INITIAL.
Здесь я воспроизводю звук:
// 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.Есть идеи?