Поделиться через


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

[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей функцией. Он был заменён модулем чтения источника и модулем записи на приёмник . средства чтения источников и записи приемника оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код средства чтения данных и средства записи данных вместо Windows Media Format 11 SDK, когда это возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]

Некоторые из входных форматов для кодеков Windows Media Audio 9 Professional и Windows Media Audio 9 Lossless являются форматами PCM с высоким разрешением. Это форматы PCM, которые имеют более двух каналов или более 16 бит на выборку (звук с более чем двумя каналами также называется многоканальным звуком).

Эти форматы настраиваются с помощью структурированного расширения структуры WAVEFORMATEX, называемой WAVEFORMATEXTENSIBLE. Структура WAVEFORMATEXTENSIBLE содержит сведения о каналах, включенных в аудиоданные. Эта структура требуется при использовании звука PCM с высоким разрешением, так как некоторые API Windows не будут принимать структуры WAVEFORMATEX, содержащие значения высокого разрешения.

Форматы PCM с высоким разрешением имеют 22 байта расширенных данных, которые указаны в члене структуры WAVEFORMATEXcbSize. Форматы звука Windows Media высокого разрешения не используют структуру WAVEFORMATEXTENSIBLE, но имеют расширенные данные, добавленные в структуру WAVEFORMATEX.

Аудиокодеки Windows Media поддерживают декодирование только в форматы PCM с высоким разрешением, если приложение работает в Windows XP или более поздней версии. В предыдущих версиях Microsoft Windows кодеки декодируются в формат не более 16 бит на выборку и 2 канала. Кроме того, необходимо указать, что кодек должен декодировать в высокоопределенный PCM, задав для параметра вывода g_wszEnableDiscreteOutput значение TRUE с помощью метода IWMReaderAdvanced2::SetOutputSetting. После этого вызова выходные данные, перечисленные средством чтения, будут включать форматы высокого определения.

Для многоканального звука требуется дополнительная настройка. Дополнительные сведения см. в разделе Чтение многоканального аудио.

работа с входными данными