Estou tentando fazer a navegação quadro a quadro no SL. Até agora, consegui fazê-lo usando Ticks. Mas notei que, se adicionar ticks constantes à posição do mediaelement e remover o valor de MESMO ticks, obtive uma posição diferente.
Por exemplo:
MoviePlayer.Position = MoviePlayer.Position.Add(getFrameDuration());
var X = MoviePlayer.Position.Ticks;
MoviePlayer.Position = MoviePlayer.Position.Substract(getFrameDuration());
var Y = MoviePlayer.Position.Ticks;
X não é igual a Y.
Como isso pode ser??
private TimeSpan getFrameDuration()
{
return new TimeSpan((int)Math.Round(1000 / 29.97* 10000));
}
Respostas:
0 para resposta № 1Para obter uma boa resposta, você precisa postar o código do getFrameDuration
método.
Minha aposta é que getFrameDuration () retorne 0
.
EDITAR
Se a mídia não suportar operações de busca(que é o caso de mídia de streaming ao vivo), definir essa propriedade não terá efeito sobre reprodução de mídia. Verifique o valor do CanSeek antes de tentar definir Posição.
Se a posição for configurável, as seguintes restrições de valor em tempo de execução Aplique:
Se a posição estiver definida como um valor negativo, o valor será revertido para um valor TimeSpan com o valor 0: 0: 0.
Se a posição estiver definida como um valor maior que o NaturalDuration da mídia, então o NaturalDuration é definido como Position