Чтение файлов с помощью асинхронного средства чтения
[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей. Он был заменен на модуль чтения источника и модуль записи приемника. Source Reader и Sink Writer оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код средства чтения исходного кода и записи приемников вместо пакета SDK для Windows Media 11, когда это возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
Асинхронный считыватель считывает содержимое из файлов ASF с помощью нескольких потоков и асинхронных вызовов. Возможности, поддерживаемые асинхронным ридером, хорошо подходят для приложений, которые представляют содержание конечным пользователям.
Самые основные функциональные возможности объекта чтения можно разбить на следующие шаги. В этих шагах "приложение" ссылается на программу, написанную с помощью пакета SDK для формата Windows Media.
- Приложение реализует интерфейс IWMReaderCallback для обработки сообщений от ридера. Сюда входят два метода обратного вызова: OnStatus, которая получает сообщения, относящиеся к состоянию различных аспектов средства чтения и OnSample, которая получает несжатые образцы от средства чтения.
- Приложение передает читателю имя файла для чтения. Когда средство чтения открывает файл, он назначает выходной номер каждому потоку. Если файл использует взаимное исключение, средство чтения назначает один выход для всех взаимоисключающих потоков.
- Приложение получает сведения о конфигурации различных выходных данных ридера. Собранные сведения позволят приложению правильно отображать примеры мультимедиа.
- Приложение указывает читателю начать чтение данных из файла. Средство чтения начинает доставлять несжатые образцы в OnSample обратного вызова в буферах, упакованных в буферные объекты. Образцы, предоставленные читателем, находятся в порядке времени представления. Читалка продолжит передачу образцов до тех пор, пока не будет остановлена приложением или не достигнет конца файла.
- Приложение отвечает за отрисовку данных после их получения от средства чтения. Пакет SDK для формата Windows Media не предоставляет никаких подпрограмм отрисовки. Как правило, приложения будут использовать другие пакеты SDK для отрисовки данных, например пакета SDK Microsoft DirectX® или мультимедийные функции пакета SDK для платформы Microsoft Windows.
- После завершения чтения приложение указывает читателю закрыть файл.
Эти шаги показаны в примере приложения AudioPlayer, среди прочего. Дополнительные сведения см. в разделе Примеры приложений.
Устройство также поддерживает более сложные функциональные возможности. Программа для чтения позволяет выполнять следующие действия:
- Приостановка воспроизведения файла.
- Получите статистику по производительности чтения.
- Управление выбором потока для взаимоисключающих потоков.
- Вручную выделяет буферы для выходных данных.
- Укажите собственные часы.
- Получение состояния операций с файлами (буферизация, скачивание или сохранение).
- Откройте файл с помощью стандартного COM-интерфейса IStream.
- Искать определенные точки в файле ASF.
- Чтение данных профиля из заголовка файла.
В следующих разделах подробно описано использование объекта чтения.
- Для реализации сообщений читателя в функции обратного вызова OnStatus
- Реализовать обратный вызов OnSample
- Создать ридер и открыть файл
- для получения примеров мультимедиа с асинхронным ридером
- Поиск по времени с использованием асинхронного ридера
- для поиска по номеру кадра с помощью асинхронного чтения
- Для поиска по коду времени SMPTE с помощью асинхронного средства чтения
- для поиска маркеров
- Приостановить или остановить воспроизведение
- получения статистики производительности чтения
- для ручного выбора потока
- Для доставки сжатых образцов с помощью асинхронного ридера
Связанные разделы