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


Метод IMFRateControl::SetRate (mfidl.h)

Задает частоту воспроизведения.

Синтаксис

HRESULT SetRate(
  [in] BOOL  fThin,
  [in] float flRate
);

Параметры

[in] fThin

Если задано значение TRUE, потоки мультимедиа будут истончены. В противном случае поток не будет истончен. Для источников мультимедиа и демультиплексеров объект должен истончить потоки, если этот параметр имеет значение TRUE. Для нисходящих преобразований, таких как декодеры и мультиплексоры, этот параметр является информативным; он уведомляет объект о том, что входные потоки утончены. Дополнительные сведения см. в разделе Сведения об управлении скоростью.

[in] flRate

Запрошенная скорость воспроизведения. Положительные значения указывают на воспроизведение вперед, отрицательные — обратное воспроизведение, а ноль — на очистку (источник предоставляет один кадр).

Возвращаемое значение

Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.

Код возврата Описание
S_OK
Метод выполнен успешно.
MF_E_REVERSE_UNSUPPORTED
Объект не поддерживает обратное воспроизведение.
MF_E_THINNING_UNSUPPORTED
Объект не поддерживает истончение.
MF_E_UNSUPPORTED_RATE
Объект не поддерживает запрошенную скорость воспроизведения.
MF_E_UNSUPPORTED_RATE_TRANSITION
Объект не может измениться на новую скорость в состоянии выполнения.

Комментарии

Сеанс мультимедиа предотвращает некоторые переходы между границами скорости в зависимости от текущего состояния воспроизведения:

Состояние воспроизведения Переадресация/обратная Переадресация/ноль Обратный/ноль
Запущен Нет Нет Нет
Пауза Нет Да Нет
Остановлена Да Да Да
 

Если переход не поддерживается, метод возвращает MF_E_UNSUPPORTED_RATE_TRANSITION.

Когда источник мультимедиа завершает вызов SetRate, он отправляет событие MESourceRateChanged . Другие компоненты конвейера не отправляют это событие.

Если источник мультимедиа переключается между истонченным воспроизведением, потоки отправляют событие MEStreamThinMode для указания перехода. События из источника мультимедиа не синхронизируются с событиями из потоков мультимедиа. После получения события MESourceRateChanged вы по-прежнему можете получать примеры, которые были поставлены в очередь перед тем, как поток переключился в режим с утонченным или неистонченным. Событие MEStreamThinMode отмечает точную точку в потоке, где происходит переход.

Когда сеанс мультимедиа завершает вызов SetRate, он отправляет событие MESessionRateChanged .

Требования

   
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header mfidl.h
Библиотека Mfuuid.lib

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

Настройка скорости воспроизведения в сеансе мультимедиа

IMFRateControl