1

OpenALプログラマーガイドから:

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

);

OpenAL デバイスは、バッファを再サンプリングする必要なく、どの周波数とフォーマットを使用することを好むかについてクエリを実行できますか?

4

1 に答える 1

1

Afaikは、フォーマットではなく、周波数のみを取得できます。を使用して関数を作成するときはalcCreateContext、ミキシングバッファの属性を指定します。そこを通過するNULLと、後で以下を使用してこれらの属性を照会できますalcGetIntegerv

  1. ALC_ATTRIBUTES_SIZE列挙型を使用した最初のクエリ属性カウント
  2. ALC_ALL_ATTRIBUTES次に、列挙型を使用して十分な大きさのバッファとクエリ属性を割り当てます
  3. バッファには、属性名とその値のペアが含まれます:[attrib1、value1、attrib2、value2、...]
  4. 頻度列挙型の名前はALC_FREQUENCY-配列をループしてこの列挙型を検索します。

フォーマットに関しては、ステレオまたはモノラルサウンドの場合はsignedshortを使用します。これにより、すべてのプラットフォームで十分なパフォーマンスが得られるはずです(フロートを使用してミキシングする場合でも、ショートからショート、フロートに変換するのは高速です)。

于 2012-12-31T07:08:51.870 に答える