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


Поиск по номеру кадра с помощью асинхронного средства чтения

[Функция, связанная с этой страницей, 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 по номеру кадра с помощью асинхронного средства чтения, выполните следующие действия.

  1. Получите указатель на интерфейс IWMReaderAdvanced3 объекта чтения путем вызова IWMReader::QueryInterface.
  2. Задайте начальный номер кадра и длительность путем вызова IWMReaderAdvanced3::StartAtPosition. Необходимо указать номер потока видео, индексируемого по кадрам. Средство чтения синхронизирует остальные выходные данные с временем представления указанного кадра указанного потока и начнет предоставлять выходные образцы.
  3. Обрабатывайте образцы так, как вы обычно это делаете в реализации метода IWMReaderCallback::OnSample.

чтение файлов с помощью асинхронного ридера

чтение метаданных при воспроизведении

работа с индексами