C++ 能否查询OpenAL设备的频率和格式?
发件人: ))C++ 能否查询OpenAL设备的频率和格式?,c++,c,audio,openal,C++,C,Audio,Openal,发件人: )) 在不需要对缓冲区重新采样的情况下,是否可以查询OpenAL设备喜欢使用的频率和格式?a好的,您只能获取频率,而不是格式。使用alcreatecontext创建函数时,指定混合缓冲区的属性。如果在那里传递NULL,则可以稍后使用algetintegerv查询这些属性: 使用ALC\u ATTRIBUTES\u SIZEenum首次查询属性计数 然后使用ALC\u ALL\u attributesenum分配足够大的缓冲区和查询属性 缓冲区将包含属性名称对及其值:[attrib1,v
在不需要对缓冲区重新采样的情况下,是否可以查询OpenAL设备喜欢使用的频率和格式?a好的,您只能获取频率,而不是格式。使用
alcreatecontext
创建函数时,指定混合缓冲区的属性。如果在那里传递NULL
,则可以稍后使用algetintegerv
查询这些属性:
ALC\u ATTRIBUTES\u SIZE
enum首次查询属性计数ALC\u ALL\u attributes
enum分配足够大的缓冲区和查询属性ALC\u Frequency
-循环遍历数组并搜索此枚举至于格式-立体声或单声道声音使用有符号的缩写。这应该在所有平台上都能提供足够好的性能(即使是那些使用浮点数进行混合的平台,从短到短转换为浮点数的操作也很快)。Afaik您只能获得频率,而不能获得格式。使用
alcreatecontext
创建函数时,指定混合缓冲区的属性。如果在那里传递NULL
,则可以稍后使用algetintegerv
查询这些属性:
ALC\u ATTRIBUTES\u SIZE
enum首次查询属性计数ALC\u ALL\u attributes
enum分配足够大的缓冲区和查询属性ALC\u Frequency
-循环遍历数组并搜索此枚举void alBufferData(
ALuint buffer,
ALenum format,
const ALvoid *data,
ALsizei size,
ALsizei freq