Пример асинхронного фильтра
Описание
Пример Async Filter — это фильтр чтения файлов, поддерживающий прогрессивное скачивание. Этот пример фильтра реализует интерфейсы IAsyncReader и IFileSourceFilter . Он поддерживает MPEG-файлы, но не файлы AVI.
Использование
Этот пример включает небольшое приложение командной строки Memfile.exe, демонстрирующее фильтр. Аргументы командной строки указывают файл мультимедиа и скорость передачи в килобайтах в секунду. Приложение считывает файл в память с указанной скоростью и воспроизводит файл. Для этого он создает экземпляр фильтра, добавляет фильтр в граф фильтра и отображает выходной пин-код фильтра.
В командной строке введите:
BitRate имени файла Memfile
Пример фильтра Async не поддерживает файлы AVI, так как он не может подключиться к фильтру разделителя AVI . Выходной пин-код асинхронного фильтра предлагает MEDIATYPE_Stream и MEDIASUBTYPE_NULL для типа носителя. Входной контакт в фильтре разделителя AVI не принимает MEDIASUBTYPE_NULL и не предлагает собственные типы. Таким образом, соединение с закреплением завершается сбоем. Асинхронный фильтр можно улучшить, чтобы предложить MEDIASUBTYPE_Avi при необходимости. Например, он может изучить формат файла или использовать расширение файла.
Скачивание примера
Чтобы скачать примеры пакета SDK для DirectShow, установите последнюю версию пакета SDK Windows.
Этот пример устанавливается по следующему пути: [корневой каталог SDK]\Samples\Multimedia\DirectShow\Filters\Async.
Связанные темы