来自The OpenAL Programmers Guide:
void alBufferData(
ALuint buffer,
ALenum format,
const ALvoid *data,
ALsizei size,
ALsizei freq
);
可以在不需要重新取样缓冲区的情况下查询OpenAL设备的首选频率和格式吗?
答案 0 :(得分:1)
Afaik你只能获得频率,而不是格式。使用alcCreateContext
创建函数时,请指定混合缓冲区的属性。如果您通过NULL
,则可以稍后使用alcGetIntegerv
查询这些属性:
ALC_ATTRIBUTES_SIZE
枚举ALC_ALL_ATTRIBUTES
enum ALC_FREQUENCY
- 循环遍历数组并搜索此枚举。至于格式 - 使用签名的短音立体声或单声道声音。这应该在所有平台上提供足够好的性能(即使那些使用浮动进行混合,将短到短转换为浮动的是快速操作)。