2016-10-30 4 views
0

Я пытаюсь воспроизвести wav-файл с 32-битным битом в формате сэмпла. Когда я пытаюсь сгенерировать базу данных OpenAL и даю ей AL_FORMAT_STEREO_FLOAT32 в качестве параметра для типа формата, я получаю код ошибки OpenAL 40962, который, как я считаю, означает недопустимое перечисление.Ошибка OpenAL-Soft invalid enum AL_FORMAT_STEREO_FLOAT32

Почему это происходит?

Вот как я создаю буфер в OpenAL.

alBufferData(buffer, AL_FORMAT_STEREO_FLOAT32, fWavDataIn, wavHeader.subChunk2Size, wavHeader.sampleRate); 

8 и 16 бит на выборку работает очень хорошо с AL_FORMAT_STEREO16 и AL_FORMAT_STEREO8. Но AL_FORMAT_STEREO_FLOAT32 не работает. Зачем?

+1

Есть несколько вещей, отсутствующих в вашем сообщении. Во-первых, что именно вы хотите знать (четко сформулированный вопрос). Без этого мы можем только догадываться, что вы хотите. Далее мы абсолютно должны знать, какие усилия вы уже пошли, что означает, мы абсолютно должны видеть исходный код, который точно воспроизводит проблему в сжатой форме. Так называемый MCVE: http://stackoverflow.com/help/mcve – datenwolf

+0

жаль об этом. Я редактировал свой пост. Я пытаюсь понять, почему openal не будет генерировать буфер с 32 бит на образец. 8 и 16 работает отлично. а не 32. – user2204292

+0

Где вы нашли этот формат? Похоже, что это не определено в 'al.h'. – HolyBlackCat

ответ

1

AL_FORMAT_STEREO_FLOAT32 не является родственной функцией OpenAL. Перед использованием float вы должны проверить «AL EXT Float32» в alGetString (AL_EXTENSIONS).

 Смежные вопросы

  • Нет связанных вопросов^_^