Поиск по номеру кадра с помощью асинхронного средства чтения
[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей функцией. Его заменили средства чтения источника и записи приемника . Source Reader и Sink Writer оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, по возможности, использовать новый код вместе с Source Reader и Sink Writer вместо Windows Media Format 11 SDK. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
Объект асинхронного чтения можно использовать для поиска номеров кадров видеопотоков в ASF-файле. Чтобы использовать поиск на основе кадров, файл, загруженный в читатель, должен индексироваться по кадру. Каждый отдельный видеопоток можно индексировать. Чтобы определить, был ли поток индексирован по кадру, можно проверить атрибут g_wszWMNumberOfFrames в заголовке файла, вызвав IWMHeaderInfo::GetAttributeByName.
Чтобы искать данные в файле ASF по номеру кадра с помощью асинхронного средства чтения, выполните следующие действия.
- Получите указатель на интерфейс IWMReaderAdvanced3 объекта чтения путем вызова IWMReader::QueryInterface.
- Задайте начальный номер кадра и длительность путем вызова IWMReaderAdvanced3::StartAtPosition. Необходимо указать номер потока видео, индексируемого по кадрам. Средство чтения синхронизирует остальные выходные данные с временем представления указанного кадра указанного потока и начнет предоставлять выходные образцы.
- Обрабатывайте образцы так, как вы обычно это делаете в реализации метода IWMReaderCallback::OnSample.
Связанные разделы
-
чтение метаданных при воспроизведении