Реализация обратного вызова OnSample
[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей функцией. Он был заменен средством чтения исходного кода и модуля записи приемника. Средство чтения исходного кода и модуль записи приемника оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код по возможности использовал средство чтения исходного кода и модуль записи приемника вместо пакета SDK для Windows Media Format 11. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Асинхронное средство чтения доставляет примеры в управляющее приложение в порядке времени презентации, выполняя вызовы метода обратного вызова IWMReaderCallback::OnSample . При создании приложения с помощью асинхронного средства чтения необходимо реализовать OnSample для работы с несжатыми примерами. Как правило, функции или методы, созданные для отрисовки содержимого, вызываются из OnSample.
Типичная реализация обратного вызова OnSample включает следующие шаги.
- Получите расположение и размер буфера, содержащего образец, вызвав МЕТОД INSSBuffer::GetBufferAndLength в буфере, переданном как pSample.
- Ветвление логики в зависимости от выходного номера. Выходной номер передается в OnSample как dwOutputNumber.
- Включите логику отрисовки для каждого номера выходных данных, которые вы хотите поддерживать. При отрисовке примеров из нескольких выходных данных может потребоваться синхронизировать отрисовку.
Приложения, доставляющие сжатые примеры из ASF-файлов, должны реализовать метод обратного вызова IWMReaderCallbackAdvanced::OnStreamSample . Функции OnStreamSample почти идентичны OnSample, за исключением того, что он получает сжатые выборки по номеру потока, а не несжатые выборки по выходному номеру.
Связанные темы