Compartilhar via


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 diluidos. Caso contrário, o fluxo não será afinado. Para fontes de mídia e demultiplexers, o objeto deve afinar os fluxos quando esse parâmetro for TRUE. Para transformações downstream, como decodificadores e multiplexadores, esse parâmetro é informativo; ele notifica o objeto de que os fluxos de entrada são afinados. Para obter informações, consulte Sobre o controle de taxa.

[in] flRate

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

Valor retornado

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 ser alterado para a nova taxa enquanto estiver no estado em execução.

Comentários

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

Estado de reprodução Avançar/Inverter Avançar/Zero Reverso/Zero
Executando Não Não Não
Em Pausa Não Sim Não
Parado Sim Sim Sim
 

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 que o fluxo mude 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