alGetSourcei всегда является ошибкой и возвращает AL_INVALID_NAME (40961) для alGetError ().
Во-первых, я думал, что звуковой буфер неправильный. Но нет, потому что alSourcePlay точно работает.
Как я могу решить эту проблему?
ALuint buffer = /*some valid openal buffer*/;
ALint state;
alGetSourcei(buffer, AL_SOURCE_STATE, &state);
ALenum error = alGetError();
if (error != AL_NO_ERROR)
std::cout << (int)error << std::endl; // In here, always return 40961
// This seems like the buffer is wrong.
// But, buffer is correct.
// Because alSourcePlay() works properly!!
Кстати, состояние всегда 32766.