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


Получение статистики производительности чтения

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

При локальном чтении файлов с помощью асинхронного средства чтения не требуется проверять производительность операций чтения. Однако если приложение считывает данные из источника потоковой передачи, статистика производительности может быть очень важной. Ваше приложение может реагировать на изменения производительности воспроизведения, чтобы обеспечить наилучший пользовательский интерфейс.

Сведения о производительности, которые можно получить от ридера, включают в себя следующую статистику:

  • Текущая пропускная способность подключения.
  • Количество пакетов, полученных от сервера.
  • Количество потерянных пакетов, которые были восстановлены.
  • Количество потерянных пакетов, которые не были восстановлены.
  • Процент от общего количества отправленных пакетов.

Чтобы получить статистику производительности чтения, выполните следующие действия.

  1. Перед началом воспроизведения создайте структуру WM_READER_STATISTICS. Необходимо задать для элемента cbSize значение sizeof(WM_READER_STATISTICS).
  2. Получите указатель на интерфейс IWMReaderAdvanced объекта чтения, вызвав IWMReader::QueryInterface.
  3. Во время воспроизведения совершайте вызовы IWMReaderAdvanced::GetStatistics, чтобы часто отслеживать производительность. Передайте структуру WM_READER_STATISTICS с каждым вызовом и проверьте соответствующие члены.

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