Получение сведений о профиле при воспроизведении
[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей функцией. Он был замещён компонентом "Чтение источника" и компонентом "Запись в приемник". Source Reader и Sink Writer были оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код с источником чтения и записывающим устройством, вместо Windows Media Format 11 SDK, когда это возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
Сведения из профиля, используемого для создания файла, хранятся в разделе заголовка файла. Оба объекта чтения могут получить доступ к данным профиля из заголовка файла. Существует несколько причин, по которым вы можете захотеть получить доступ к данным профиля с устройства чтения. В большинстве случаев необходимо получить сведения о потоках, объектах взаимного исключения и объектах общего доступа к пропускной способности.
Асинхронный объект чтения и синхронный объект чтения можно запросить для интерфейса IWMProfile. Никакие изменения, внесенные в сведения профиля, не могут повлиять на файл в ридере. Дополнительные сведения о доступе к данным профиля см. в разделе Работа с профилями.
Потоковые сведения
Иногда важно знать, как настроен поток. При получении свойств мультимедиа из любого из объектов чтения вы получаете свойства выходных данных. Свойства выходных данных описывают, как несжатые данные из потока будут доставляться средством чтения, а не как поток настроен в файле ASF.
При получении несжатых образцов потоков из одного из объектов чтения необходимо использовать информацию о профиле для идентификации формата сжатых данных. Это особенно важно, если вы собираетесь записать сжатый поток в другой ASF-файл.
Кроме того, необходимо получить доступ к данным потока при использовании интеллектуальной повторной обработки для перекодирования звукового потока на более низкую скорость передачи.
Может потребоваться определить, был ли поток записан с помощью кодировки переменной скорости (VBR). Доступ к какой-либо информации VBR невозможно получить из интерфейса IWMProfile любого из читающих объектов. Это связано с тем, что данные VBR не хранятся в файле после кодирования. Вы можете определить, был ли поток создан с помощью кодировки VBR, получив указатель на интерфейс IWMHeaderInfo объекта чтения и вызвав IWMHeaderInfo::GetAttributeByName. Необходимо указать номер потока и передать g_wszIsVBR в качестве имени атрибута.
Сведения о взаимном исключении
Если вы хотите создать приложение чтения, использующее взаимное исключение, необходимо получить доступ к сведениям о любых объектах взаимного исключения, включенных в профиль. Для всех типов взаимных исключений, кроме скорости, приложение чтения отвечает за любое необходимое переключение потоков. Чтобы переключать потоки, необходимо знать, какие потоки для чего предназначены.
Сведения о совместном использовании пропускной способности
Объекты общего доступа к пропускной способности, включенные в профиль, включаются только в информационных целях. Ни объект записи, ни ни один из объектов чтения не принимает никаких действий в результате совместного использования пропускной способности данных. Если вы хотите использовать распределение пропускной способности в вашем приложении для чтения, необходимо получить доступ к информации о распределении пропускной способности из данных профиля.
Заметка
Не все сведения из профиля, используемого для создания файла, присутствуют в заголовке файла. Как правило, данные, используемые только во время кодирования, не сохраняются в файле. К ним относятся параметры ввода, заданные с помощью метода IWMWriterAdvanced2::SetInputSetting, а также набор свойств с помощью метода IWMPropertyVault::SetProperty.
Связанные разделы