gpt4 book ai didi

c++ - 可以查询 OpenAL 设备它喜欢的频率和格式吗?

转载 作者:太空宇宙 更新时间:2023-11-04 03:58:32 24 4
gpt4 key购买 nike

来自 The OpenAL Programmers Guide :

void alBufferData(
ALuint buffer,
ALenum format,
const ALvoid *data,
ALsizei size,
ALsizei freq

);

是否可以在不需要对缓冲区重新采样的情况下查询 OpenAL 设备它喜欢使用的频率和格式?

最佳答案

Afaik 你只能得到频率,而不是格式。当您使用 alcCreateContext 创建函数时,您可以指定混合缓冲区的属性。如果你在那里传递 NULL 然后你可以稍后使用 alcGetIntegerv 查询这些属性:

  1. 首先使用 ALC_ATTRIBUTES_SIZE 枚举查询属性计数
  2. 然后使用 ALC_ALL_ATTRIBUTES 枚举分配足够大的缓冲区和查询属性
  3. 缓冲区将包含成对的属性名称及其值:[attrib1, value1, attrib2, value2, ...]
  4. 频率枚举名称是 ALC_FREQUENCY - 遍历数组并搜索此枚举。

至于格式——对立体声或单声道声音使用带符号的短格式。这应该在所有平台上提供足够好的性能(即使是那些使用 float 进行混合的平台,将 short 转换为 short 到 float 也是快速操作)。

关于c++ - 可以查询 OpenAL 设备它喜欢的频率和格式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14095962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com