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


Метод CSourceSeeking.ChangeRate

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

Метод ChangeRate вызывается при изменении скорости воспроизведения.

Синтаксис

virtual HRESULT ChangeRate() = 0;

Параметры

Этот метод не имеет параметров.

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

Возвращает значение HRESULT .

Комментарии

Метод CSourceSeeking::SetRate вызывает этот метод, который должен реализовать производный класс. Метод SetRate обновляет переменную-член CSourceSeeking::m_dRateSeeking , но не проверяет новое значение. Ставка, равная нулю, всегда должна быть отклонена. Скорость меньше нуля указывает на отрицательное воспроизведение. Большинство фильтров не поддерживают отрицательные показатели.

В следующем примере показана возможная реализация:

HRESULT CMyStream::ChangeRate( )
{
    {   // Scope for critical section lock.
        CAutoLock cAutoLockSeeking(CSourceSeeking::m_pLock);
        if( m_dRateSeeking <= 0 ) {
            m_dRateSeeking = 1.0;  // Reset to a reasonable value.
            return E_FAIL;
        }
    }
    UpdateFromSeek();
    return S_OK;
}

Требования

Требование Значение
Заголовок
Ctlutil.h (включая Streams.h)
Библиотека
Strmbase.lib (розничные сборки);
Strmbasd.lib (отладочные сборки)

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

Класс CSourceSeeking