Согласование формата

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

Чтобы Медиаплеер Windows и подключаемый модуль DSP для совместного использования данных, обе программы должны согласовать формат обрабатываемых данных. Подключаемый модуль DSP реализует методы, которые проигрыватель вызывает для определения форматов, поддерживаемых подключаемым модулем. Подключаемый модуль также реализует методы, которые проигрыватель вызывает для установки текущего формата.

Если подключаемый модуль выступает в качестве объекта мультимедиа DirextX (DMO), Медиаплеер Windows обнаруживает и задает форматы мультимедиа, вызывая методы интерфейса IMediaObject. Например, проигрыватель несколько раз вызывает IMediaObject::GetInputType подключаемого модуля, чтобы получить список всех форматов ввода, поддерживаемых подключаемым модулем. Подключаемые модули DMO используют структуру DMO_MEDIA_TYPE для упорядочения сведений, указывающих формат мультимедиа. Дополнительные сведения о том, как подключаемые модули DMO и формат проигрывателя согласовывают, см. в разделе Сведения об IMediaObject.

Если подключаемый модуль выступает в качестве преобразования Media Foundation (MFT), Медиаплеер Windows обнаруживает и задает форматы мультимедиа, вызывая методы интерфейса IMFTransform. Например, проигрыватель несколько раз вызывает функцию IMFTransform::GetInputAvailableType подключаемого модуля, чтобы получить список всех форматов ввода, поддерживаемых подключаемым модулем. Подключаемые модули MFT и проигрыватель используют интерфейс IMFMediaType для организации и обмена информацией о формате.

Медиаплеер Windows будет использовать подключаемый модуль DSP только в том случае, если подключаемый модуль поддерживает ту же битовую глубину, что и воспроизводимый цифровой звук. Например, если цифровой звук является 20-разрядным, подключаемый модуль должен быть записан для обработки 20-разрядного звука. Для аудиозаписи компакт-дисков подключаемые модули DSP должны поддерживать 20-разрядную обработку.

Во время согласования форматирования многоканальной содержимой на компьютере, настроенном для использования со стереофониками, Медиаплеер Windows сначала пытается подключиться к подключаемого модулем DSP аудиосвязи с помощью существующего формата ввода и вывода путем вызова IMediaObject::SetInputType и IMediaObject::SetOutputType. После этого начального согласования проигрыватель перечисляет форматы, поддерживаемые подключаемым модулем, и пытается согласовать наилучшее сочетание форматов для проигрывателя и подключаемого модуля. Если подключаемый модуль принимает стереофонический звук (определяется структурой WAVEFORMATEX ) в качестве формата входных данных во время начального согласования, а затем принимает только многоканальный звук (определяемый структурой WAVEFORMATEXTENSIBLE ), проигрыватель предоставляет многоканальный звук в качестве входного формата для подключаемого модуля. Такое поведение во время согласования формата доступно для использования в операционной системе Microsoft Windows XP. В последующих версиях он может быть изменен или недоступен.

Общие сведения о подключаемом модуле DSP для разработчиков