Вопрос

Как мне правильно воспроизводить аудиофайлы, которые могут иметь переменный битрейт (и даже переменное число каналов в некоторых случаях), например, ogg / vorbis?

XAudio ожидает эту информацию в структуре WAVEFORMATEX при создании исходного голоса и, похоже, не предоставляет средства для ее изменения для каждого отправляемого буфера ...

Это было полезно?

Решение

Если у меня недостаточно звука, ни в одном аудиоформате не указывается переменная скорость передачи данных output или число каналов output . Кодек с переменным битрейтом означает, что количество битов, используемых для кодирования фиксированного количества выборок, варьируется. Vorbis позволяет динамически кодировать каналы, а также каналы, которые могут быть воспроизведены с помощью более простых функций, таких как тишина. Количество выходных каналов остается постоянным, а также битрейт на выходе.

Кроме того, XAudio2 изначально не поддерживает файлы ogg / vorbis; он поддерживает PCM, ADPCM и xWMA в Windows и PCM, XMA и xWMA в Xbox 360.

В целом, для не родных форматов вы должны самостоятельно распаковать аудио в соответствующий битрейт output и формат канала и отправить его в IXAudio2SourceVoice через IXAudio2SourceVoice :: SubmitSourceBuffer .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top