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 )
检查设备是否已成功打开
当 运行 我的音频应用程序从 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 )