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


Интерфейс IAMStreamControl (strmif.h)

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

Интерфейс IAMStreamControl управляет отдельными потоками в фильтре. Закрепление на некоторых фильтрах предоставляет этот интерфейс. Например, мультиплексный фильтр AVI поддерживает этот интерфейс на входных контактах, а фильтр аудиозахвата и фильтр видеозахвата WDM поддерживают его на выходных контактах.

Этот интерфейс позволяет приложению включать и отключать потоки в указанное время. Например, приложение может отключить звуковой поток, чтобы отключить звук во время предварительного просмотра видео. Приложения записи могут использовать этот интерфейс для указания точного времени начала и остановки записи, а также для управления потоками записи и предварительного просмотра независимо друг от друга.

Чтобы использовать этот интерфейс, вызовите метод IAMStreamControl::StartAt , чтобы указать, когда закрепление начнет доставлять данные, и метод IAMStreamControl::StopAt , чтобы указать, когда он прекратит доставку данных. Затем вызовите IMediaControl::Run в диспетчере графов фильтров, чтобы запустить граф фильтра. Все время относится к моменту начала работы графа.

При использовании этого интерфейса следует учитывать следующие ограничения.

  • В графе фильтра должны быть ссылочные часы.
  • Предварительный просмотр контактов на картах захвата с аппаратным наложением не поддерживает этот интерфейс.
  • Если звук и видео записываются в файл AVI с чередованием, фильтр AVI Mux требует передачи данных в оба потока. Если остановить один поток, фильтр не сможет чередовать данные. Дополнительные сведения см. в разделе Интерфейс IConfigInterleaving.
В зависимости от приложения метод ICaptureGraphBuilder2::ControlStream может оказаться более удобным, так как он поддерживает управление потоком на уровне графа, поэтому вам не придется перечислять отдельные фильтры и контакты.

Разработчики фильтров. Этот интерфейс реализуется в базовом классе CBaseStreamControl .

Наследование

Интерфейс IAMStreamControl наследуется от интерфейса IUnknown . IAMStreamControl также имеет следующие типы членов:

Методы

Интерфейс IAMStreamControl содержит следующие методы.

 
IAMStreamControl::GetInfo

Метод GetInfo извлекает сведения о текущих параметрах управления потоком, включая время запуска и остановки.
IAMStreamControl::StartAt

Метод StartAt сообщает закреплению, когда следует начать доставку данных.
IAMStreamControl::StopAt

Метод StopAt сообщает контакту, когда следует прекратить доставку данных.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header strmif.h (включая Dshow.h)

См. также раздел

Класс CBaseStreamControl

Коды ошибок и успешного выполнения