alcOpenDevice 中的 OpenAL Soft 40964:AL_INVALID_OPERATION

OpenAL Soft 40964 in alcOpenDevice: AL_INVALID_OPERATION

当 运行 我的音频应用程序从 Windows 移植到 Ubuntu Virtualbox 上时,它报告以下内容:

Devices found:
OpenAL Soft

OpenAL Soft 40964 in alcOpenDevice: AL_INVALID_OPERATION

它运行的线路:

ALCdevice device = alcOpenDevice( NULL ); // Also tried "OpenAL Soft"

Ubuntu 音频工作正常。我错过了什么?

CMakeLists:

target_link_libraries( ${PROJECT_NAME}
    "myengine"
    "openal"
)

我在目标 VM

上安装了 libopenal1

显然,alGetError() 会在创建上下文之前 return 此错误。从alcMakeContextCurrent()开始,我可以使用这个函数来检查错误。

现在可以播放音频了!

所以对于 alcOpenDevice()alcCreateContext() 我不得不注释掉 alGetError() 错误检查。虽然我仍然可以使用 if( !device )

检查设备是否已成功打开