Получение сведений профиля при воспроизведении

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

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

Как объект асинхронного средства чтения, так и синхронный объект средства чтения можно запросить интерфейс IWMProfile . Никакие изменения, внесенные в данные профиля, не могут повлиять на файл в средстве чтения. Дополнительные сведения о доступе к сведениям профиля см. в разделе Работа с профилями.

Сведения о потоке

Иногда важно знать, как настроен поток. При извлечении свойств мультимедиа из любого из объектов средства чтения вы получите свойства выходных данных. Выходные свойства описывают, как несжатые данные из потока будут доставлены средством чтения, а не как поток настраивается в ASF-файле.

При получении несжатых примеров потоков из любого объекта средства чтения необходимо использовать данные профиля для определения формата сжатых данных. Это особенно важно, если вы собираетесь записать сжатый поток в другой ASF-файл.

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

Может потребоваться определить, был ли поток записан с использованием кодировки С переменной скоростью передачи данных (VBR). Вы не можете получить доступ к данным VBR из интерфейса IWMProfile любого объекта чтения. Это связано с тем, что данные VBR не хранятся в файле после кодирования. Чтобы определить, был ли поток создан с помощью кодировки VBR, получите указатель на интерфейс IWMHeaderInfo объекта средства чтения и вызовите IWMHeaderInfo::GetAttributeByName. Необходимо указать номер потока и передать g_wszIsVBR в качестве имени атрибута.

Сведения о взаимном исключении

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

Сведения о совместном использовании пропускной способности

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

Примечание

Не все сведения из профиля, используемого для создания файла, присутствуют в заголовке файла. Как правило, данные, используемые только во время кодирования, не сохраняются в файле. Сюда входят входные параметры, заданные с помощью метода IWMWriterAdvanced2::SetInputSetting , а также свойства, заданные с помощью метода IWMPropertyVault::SetProperty .

 

Интерфейс IWMProfile

Чтение ФАЙЛОВ ASF