Реализация обратного вызова OnSample

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

Асинхронное средство чтения доставляет примеры в управляющее приложение в порядке времени презентации, выполняя вызовы метода обратного вызова IWMReaderCallback::OnSample . При создании приложения с помощью асинхронного средства чтения необходимо реализовать OnSample для работы с несжатыми примерами. Как правило, функции или методы, созданные для отрисовки содержимого, вызываются из OnSample.

Типичная реализация обратного вызова OnSample включает следующие шаги.

  1. Получите расположение и размер буфера, содержащего образец, вызвав МЕТОД INSSBuffer::GetBufferAndLength в буфере, переданном как pSample.
  2. Ветвление логики в зависимости от выходного номера. Выходной номер передается в OnSample как dwOutputNumber.
  3. Включите логику отрисовки для каждого номера выходных данных, которые вы хотите поддерживать. При отрисовке примеров из нескольких выходных данных может потребоваться синхронизировать отрисовку.

Приложения, доставляющие сжатые примеры из ASF-файлов, должны реализовать метод обратного вызова IWMReaderCallbackAdvanced::OnStreamSample . Функции OnStreamSample почти идентичны OnSample, за исключением того, что он получает сжатые выборки по номеру потока, а не несжатые выборки по выходному номеру.

Интерфейс IWMReaderCallback

Интерфейс IWMReaderCallbackAdvanced

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

Использование методов обратного вызова