Чтение многоканального звука

Кодек Windows Media Audio 9 Professional позволяет кодировать многоканальное аудио (более двух каналов). При чтении файла с многоканальным звуком необходимо правильно настроить выходные данные, а звук будет доставляться с более низким качеством и стерео. Чтобы задать выходные данные для многоканальной звуковой доставки, необходимо задать два выходных параметра: g _ всзенабледискретеаутпут и g _ всзспеакерконфиг.

Установка параметра g _ всзенабледискретеаутпут в значение true задает кодек для доставки звуковых данных высокой четкости. Звук с высокой степенью четкости кодируется кодеком Windows Media Audio 9 с 24-разрядными примерами на стерео или нескольких каналах. Если этот параметр имеет значение false, будут доставляться только 16-разрядные выходные данные стерео.

Число динамиков на воспроизводимом компьютере задается с помощью g _ всзспеакерконфиг. Этот параметр имеет значение DWORD , равное одной из констант динамика DirectSound, перечисленных в следующей таблице. Чтобы разрешить эти константные имена для компилятора, необходимо включить дсаунд. h.

Константа Значение Описание
ДССПЕАКЕР _ 0x00000000 Звук передается напрямую, без настройки для динамиков.
_наушники дсспеакер 0x00000001 Клиентский компьютер оснащен наушниками.
ДССПЕАКЕР _ Mono 0x00000002 Клиентский компьютер оснащен монауралным докладчиком.
ДССПЕАКЕР _ Quad 0x00000003 Клиентский компьютер оснащен куадрафоник колонками.
_стерео дсспеакер 0x00000004 Клиентский компьютер оснащен стереодинамиками.
ДССПЕАКЕР _ вокруг 0x00000005 Клиентский компьютер оснащен динамиками с четырьмя каналами.
ДССПЕАКЕР _ 5POINT1 0x00000006 Клиентский компьютер оснащен пятью динамиками и сабвуфером.
ДССПЕАКЕР _ 7POINT1 0x00000007 Клиентский компьютер оснащен семью динамиками и сабвуфером.

 

Чтобы задать эти параметры, используйте IWMReaderAdvanced2:: сетаутпутсеттинг.

Наконец, для вывода каналов дискретными без свертывания в стерео необходимо задать правильный тип носителя для выходных данных, выполнив следующие действия.

  1. Вызовите метод ивмреадер:: жетаутпутформаткаунт , чтобы получить количество поддерживаемых форматов для соответствующих выходных данных звука. Индексы формата выходных данных отсчитываются от нуля.
  2. Для каждого поддерживаемого формата вызовите ивмреадер:: жетаутпутформат , чтобы получить интерфейс ивмаутпутмедиапропс в выходном объекте свойств мультимедиа.
  3. Вызовите ивммедиапропс:: жетмедиатипе , чтобы получить тип мультимедиа.
  4. Если полученный тип мультимедиа является нужным типом многоканального типа, установите его, вызвав ивмреадер:: сетаутпутпропс.

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

Примечание

Вы можете вывести многоканальный звук только в том случае, если приложение работает под управлением Microsoft Windows XP или более поздней версии Microsoft Windows.

 

Входы, потоки и выходные данные

Чтение файлов ASF

Параметры вывода

Работа с аудио High-Resolution PCM