Método IMFRateControl::SetRate (mfidl.h)

Define a taxa de reprodução.

Sintaxe

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

Parâmetros

[in] fThin

Se TRUE, os fluxos de mídia serão diminuídos. Caso contrário, o fluxo não será afinado. Para fontes de mídia e demultiplexers, o objeto deve diminuir os fluxos quando esse parâmetro for TRUE. Para transformações downstream, como decodificadores e multiplexers, esse parâmetro é informativo; ele notifica o objeto de que os fluxos de entrada são afinados. Para obter informações, consulte Sobre controle de taxa.

[in] flRate

A taxa de reprodução solicitada. Os valores positivos indicam a reprodução para a frente, os valores negativos indicam a reprodução inversa e zero indica a eliminação (a origem fornece um único quadro).

Retornar valor

O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
MF_E_REVERSE_UNSUPPORTED
O objeto não dá suporte à reprodução inversa.
MF_E_THINNING_UNSUPPORTED
O objeto não dá suporte ao afinamento.
MF_E_UNSUPPORTED_RATE
O objeto não dá suporte à taxa de reprodução solicitada.
MF_E_UNSUPPORTED_RATE_TRANSITION
O objeto não pode alterar para a nova taxa enquanto estiver no estado em execução.

Comentários

A Sessão de Mídia impede algumas transições entre limites de taxa, dependendo do estado de reprodução atual:

Estado de reprodução Avançar/Inverso Avançar/Zero Inverso/Zero
Executando No No No
Em Pausa No Yes No
Parado Sim Yes Yes
 

Se não houver suporte para a transição, o método retornará MF_E_UNSUPPORTED_RATE_TRANSITION.

Quando uma fonte de mídia conclui uma chamada para SetRate, ela envia o evento MESourceRateChanged . Outros componentes de pipeline não enviam esse evento.

Se uma fonte de mídia alternar entre a reprodução fina e não fina, os fluxos enviarão um evento MEStreamThinMode para indicar a transição. Os eventos da fonte de mídia não são sincronizados com eventos dos fluxos de mídia. Depois de receber o evento MESourceRateChanged , você ainda poderá receber amostras que foram enfileiradas antes de o fluxo mudar para o modo reduzido ou não reduzido. O evento MEStreamThinMode marca o ponto exato no fluxo em que a transição ocorre.

Quando a Sessão de Mídia conclui uma chamada para SetRate, ela envia o evento MESessionRateChanged .

Requisitos

   
Cliente mínimo com suporte Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho mfidl.h
Biblioteca Mfuuid.lib

Confira também

Como definir a taxa de reprodução na sessão de mídia

IMFRateControl