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


Преобразование многоэтапного формата

[Функция, связанная с этой страницей, диспетчер сжатия звука, является устаревшей функцией. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код не использовал эту функцию.]

Иногда ACM не может преобразовать данные из одного формата в другой на одном шаге. Например, приложению может потребоваться преобразовать 16-разрядные 44-kГц стереоданных в 11-kГц mono ADPCM. Если оператор сжатия или декомпрессор не может выполнить это преобразование напрямую, приложение может попытаться выполнить его двумя шагами. Обычно это означает, что одно преобразование между двумя форматами PCM, а затем другое преобразование в окончательный тип формата.

Чтобы преобразовать два шага, используйте функцию acmFormatSuggest для поиска формата PCM, соответствующего формату ADPCM. Затем используйте два потока преобразования для выполнения преобразования. Например, выполните одно преобразование из 16-разрядной, 44-kГц стерео PCM в 16-разрядную, 11-кГц моно, а затем преобразуйте из 16-разрядной 11-kГц моно в 11-kГц mono ADPCM.

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

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