Compartilhar via


Definindo a taxa de reprodução

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Para alterar a taxa de reprodução, chame o método IMediaSeeking::SetRate . Especifique a nova taxa como uma fração da taxa original. Por exemplo, para jogar em velocidade duas vezes normal, use o seguinte:

pSeek->SetRate(2.0)

Taxas maiores que uma são mais rápidas do que o normal. As taxas entre zero e uma são mais lentas do que o normal. As taxas negativas são definidas como reprodução anterior, mas, na prática, a maioria dos filtros não dá suporte a ela. Atualmente, nenhum dos filtros DirectShow padrão dá suporte à reprodução inversa.

Independentemente da taxa de reprodução, a posição atual e a posição de parada são sempre expressas em relação à origem original. Por exemplo, se um arquivo de origem tiver 20 segundos de duração na taxa de reprodução normal, definir a posição atual como 10 segundos buscará o meio do arquivo. Se a taxa de reprodução for de 2,0, a posição de parada será de 20 segundos e você buscar a posição de 10 segundos, o arquivo será reproduzido por 5 segundos em tempo real: 10 segundos, com o dobro da velocidade normal de reprodução. A uma taxa de reprodução de 2,0, a posição atual aumenta em duas vezes a taxa do relógio de referência.