Метод IMFMediaSink::SetPresentationClock (mfidl.h)
Задает часы презентации в приемнике мультимедиа.
Синтаксис
HRESULT SetPresentationClock(
[in] IMFPresentationClock *pPresentationClock
);
Параметры
[in] pPresentationClock
Указатель на интерфейс IMFPresentationClock часов представления или ЗНАЧЕНИЕ NULL. Если значение равно NULL, приемник мультимедиа перестает прослушивать ранее заданные часы презентации, если таковые имеются.
Возвращаемое значение
Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
|
Часы представления не имеют источника времени. Вызовите SetTimeSource в часах презентации. |
|
Был вызван метод Shutdown приемника мультимедиа. |
Комментарии
Во время потоковой передачи приемник мультимедиа пытается сопоставить скорость с часами презентации. В идеале приемник мультимедиа представляет образцы в правильное время в соответствии с часами презентации и не отстает. Приемники мультимедиа без скорости являются исключением из этого правила, так как они используют образцы как можно быстрее и игнорируют часы. Если приемник не является частотным, метод IMFMediaSink::GetCharacteristics возвращает флаг MEDIASINK_RATELESS.
Часы презентации должны иметь источник времени. Перед вызовом этого метода вызовите IMFPresentationClock::SetTimeSource в часах презентации, чтобы задать источник времени презентации. Некоторые приемники мультимедиа предоставляют источники времени; Таким образом, приемник мультимедиа может быть источником времени для собственных часов презентации. Независимо от того, какой объект предоставляет источник времени, приемник мультимедиа должен попытаться сопоставить частоту с часами, указанными в pPresentationClock. Если приемник мультимедиа не может сопоставить ставки с внешним источником времени, метод IMFMediaSink::GetCharacteristics приемника мультимедиа получает флаг MEDIASINK_CANNOT_MATCH_CLOCK. В этом случае SetPresentationClock по-прежнему будет выполнено успешно, но результаты не будут оптимальными. Приемник может не отображать образцы достаточно быстро, чтобы соответствовать скорости с часами презентации.
Если значение pPresentationClock не равно NULL, приемник мультимедиа должен зарегистрировать уведомления о состоянии времени, вызвав IMFPresentationClock::AddClockStateSink в часах презентации. Если метод вызывается снова с новыми часами представления или если pPresentationClock имеет значение NULL, приемник мультимедиа должен вызвать IMFPresentationClock::RemoveClockStateSink , чтобы отменить регистрацию по сравнению с предыдущими часами.
Все приемники мультимедиа должны поддерживать этот метод.
Требования
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | mfidl.h |
Библиотека | Mfuuid.lib |